Lon*_*don 364 unix linux bash grep
我正在使用grep来匹配文件中的字符串.这是一个示例文件:
example one,
example two null,
example three,
example four null,
Run Code Online (Sandbox Code Playgroud)
grep -i null myfile.txt 回报
example two null,
example four null,
Run Code Online (Sandbox Code Playgroud)
如何将匹配的行与其行号一起返回,如下所示:
example two null, - Line number : 2
example four null, - Line number : 4
Total null count : 2
Run Code Online (Sandbox Code Playgroud)
我知道-c返回总匹配的行,但我不知道如何正确格式化以total null count在前面添加,我不知道如何添加行号.
我能做什么?
dog*_*ane 576
-n 返回行号.
-i是为了忽略大小写.仅在不需要大小写匹配时使用
$ grep -in null myfile.txt
2:example two null,
4:example four null,
Run Code Online (Sandbox Code Playgroud)
结合使用awk后打印出的行号:
$ grep -in null myfile.txt | awk -F: '{print $2" - Line number : "$1}'
example two null, - Line number : 2
example four null, - Line number : 4
Run Code Online (Sandbox Code Playgroud)
使用命令替换打印出总空计数:
$ echo "Total null count :" $(grep -ic null myfile.txt)
Total null count : 2
Run Code Online (Sandbox Code Playgroud)
And*_*ter 54
使用-n或--line-number.
查看man grep更多选项.
用于grep -n -i null myfile.txt输出每个匹配前面的行号.
我不认为grep有一个开关来打印匹配的总行数,但你可以将grep的输出管道输出到wc来实现:
grep -n -i null myfile.txt | wc -l
Run Code Online (Sandbox Code Playgroud)
或者awk改为使用:
awk '/null/ { counter++; printf("%s%s%i\n",$0, " - Line number: ", NR)} END {print "Total null count: " counter}' file
Run Code Online (Sandbox Code Playgroud)