dee*_*epu 1 grep sed awk text-processing
我有一个文件如下。
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
Run Code Online (Sandbox Code Playgroud)
我想列出.java上面的所有文件名,比如
Total java file 4
Run Code Online (Sandbox Code Playgroud)
然后文件名
$ grep -c '\.java$' file
3
Run Code Online (Sandbox Code Playgroud)
该-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
Run Code Online (Sandbox Code Playgroud)
甚至只是(使用 GNUgrep或兼容):
$ grep -Hc '\.java$' file
file:3
Run Code Online (Sandbox Code Playgroud)
或者(仍然使用 GNU grep):
$ grep --label='Total java files in "file"' -Hc '\.java$' < file
Total java files in "file":3
Run Code Online (Sandbox Code Playgroud)