저는 명령줄을 처음 사용합니다! awk를 사용하여 명령줄에 제공된 파일 수를 인쇄하고 싶습니다. 이렇게 하려고 하면 무한 루프에 빠지게 됩니다.
awk 'BEGIN{};'
awk 'END{print ARGC}'
파일 읽기가 시작되지만 중지하는 방법을 모르겠습니다.
답변1
올바른 구문은 다음과 같습니다.
awk 'END {print ARGC}' file1 ... filen
깨닫다
- 파일이 제공되어야 합니다(elase awk는 stdin의 입력을 기다립니다)
- awk 자체는 ARGC에서 1로 계산됩니다.
파일 수를 가져옵니다
awk 'END {print ARGC-1}' file1 ... filen
무한 루프
(이유에 대한 단서가 없기 때문에 이것은 주석이어야 합니다).
당신이 쓴다고 가정하자
foobar="/my/path1 /other/path2"
C=$(awk 'END{ print ARGC-1}' $fobar)
$foobar
stdin 철자를 잘못 입력하면 무한 루프/witing이 발생할 수 있습니다 $fobar
.