두 명령을 연결하는 방법은 무엇입니까?

두 명령을 연결하는 방법은 무엇입니까?

셸에서 두 명령을 연결해야 합니다. 경로 결과를 얻고 첫 번째 필드의 열 수와 연결합니다.

전임자:

#this gives me the path of my path directory like this: `/apps/ent/appli_ent/gen/dev/recep/ENTSMETA.20150824.txt`
find $REP_RECEP -name "*META*" -print 

이 명령의 결과를 얻고 다음과 연결하겠습니다.

#this gives me the number of my colmuns field.
awk -F'|' '{print NF; exit}' 

내가 이것을 할 때 :

awk -F'|' '{print NF; exit}' find $REP_RECEP -name "*META*" -print

작동하지 않습니다.

답변1

임의의 파일 이름을 사용하는 가장 안전한 방법은 find's -exec옵션을 사용하는 것입니다. find(에서) 발견된 모든 파일/디렉토리에 대해 지정된 명령을 실행 합니다 man find.

       -exec command ;
          Execute  command;  true  if 0 status is returned.  All following
          arguments to find are taken to be arguments to the command until
          an  argument  consisting of `;' is encountered.  The string `{}'
          is replaced by the current file name being processed [...]

따라서 다음과 같이 할 수 있습니다.

find "$REP_RECEP" -name "*META*" -exec awk -F'|' '{print NF; exit}' {} \;

관련 정보