셸에서 두 명령을 연결해야 합니다. 경로 결과를 얻고 첫 번째 필드의 열 수와 연결합니다.
전임자:
#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}' {} \;