아래와 같은 파일이 있습니다.
A ctrl/bng/h2ert/scratch/TestAccountService.java
A ctrl/bng/h2ert/scratch/TestAccount.java
A ctrl/bng/h2ert/scratch/TestT.java
A ctrl/bng/h2ert/scratch/TestAccountService.jpg
A ctrl/bng/h2ert/scratch/TestService.txt
A ctrl/bng/h2ert/scratch/TestAccountService.txt
.java
위의 모든 파일 이름을 나열하고 싶습니다 .
Total java file 4
그러면 파일명이
답변1
$ grep -c '\.java$' file
3
플래그를 지정 -c
하면 grep
입력에서 패턴과 일치하는 행 수를 보고하게 됩니다.
이 패턴은 \.java$
로 끝나는 모든 줄과 일치합니다 .java
.
$ name="file"
$ printf 'Total number of Java files in "%s":\t%d\n' "$name" "$( grep -c -- '\.java$' "$name" )"
Total number of Java files in "file": 3
또는 (GNU grep
또는 호환 사용):
$ grep -Hc '\.java$' file
file:3
또는 (여전히 GNU를 사용하고 있음 grep
):
$ grep --label='Total java files in "file"' -Hc '\.java$' < file
Total java files in "file":3
답변2
기록을 위해, 역대 클래식 awk:
awk '/\.java$/{++c}END{print "Total java files:" c}' file
이러한 파일 이름도 인쇄하려면 {++c}
로 변경할 수 있습니다 {print;++c}
.
답변3
perl -lne '$a += s/\.java$//}{print"Total java file $ARGV: ", $a||0' java_file
이 s///
명령은 대체 항목의 누적 개수를 반환 $a
하고 마지막에 결과를 인쇄합니다. 이 $a||0
표현식은 줄 끝에서 .java를 찾을 수 없을 때 사용됩니다.
perl -lne '$a += /\.java$/}{print"Total java file $ARGV: ", $a||0' java_file
이번에는 .java의 존재 여부를 확인하기 위해 비파괴 테스트를 수행합니다. 나머지 세부사항은 동일합니다.