我正在使用grep来匹配文件中的字符串。 这是一个示例文件:
example one,
example two null,
example three,
example four null,
grep -i null myfile.txt返回
example two null,
example four null,
如何将匹配的行与其行号一起返回,如下所示:
example two null, - Line number : 2
example four null, - Line number : 4
Total null count : 2
我知道-c返回总匹配行,但我不知道如何正确格式化它以在前面添加total null count,我不知道如何添加行号。
我能做什么?
-n返回行号。
-i用于忽略大小写。仅在不需要大小写匹配时使用
$ grep -in null myfile.txt
2:example two null,
4:example four null,
与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
使用命令替换打印出总空计数:
$ echo"Total null count :" $(grep -ic null myfile.txt)
Total null count : 2
我可以通过添加行号而不是之前添加行号来格式化:
当然,我已经更新了我的答案。
你的解决方案似乎很好,但得到一个错误awk95: syntax error at source line context is >>> ' <<< missing } awk95: bailing out at source line 1
抱歉切换到Linux现在它的工作:)它是Windows版本不太好
......那些说-ni的骑士就是你怎么记住这个伎俩的
使用-n或--line-number。
查看man grep以获取更多选项。
新的linux用户懒得阅读手册页。 但是,如果他们使用足够的Linux,他们将习惯它:)这是超级有用的:)
并不总是懒惰,(但有时候),通常是新Linux用户无法理解手册页。 (他们看起来很神秘)
有时候手册页可能需要很多页面。 这很难读懂所有这些
或者使用awk代替:
awk '/null/ { counter++; printf("%s%s%i
",$0," - Line number:", NR)} END {print"Total null count:" counter}' file
使用grep -n -i null myfile.txt输出每个匹配前面的行号。
我不认为grep有一个开关来打印匹配的总行数,但你可以将grep的输出管道输出到wc来实现:
grep -n -i null myfile.txt | wc -l
-c将打印匹配的总行数
你是对的。 不幸的是,它也抑制了正常输出。
grep找到行并输出行号,但不允许您"编程"其他内容。如果你想包含任意文本并做其他"编程",你可以使用awk,
$ awk '/null/{c++;print $0," - Line number:"NR}END{print"Total null count:"c}' file
example two null, - Line number: 2
example four null, - Line number: 4
Total null count: 2
或者只使用shell(bash / ksh)
c=0
while read -r line
do
case"$line" in
*null* ) (
((c++))
echo"$line - Line number $c"
;;
esac
done
echo"total count: $c"
或者在perl中(为了完整性......):
perl -npe 'chomp; /null/ and print"$_ - Line number : $.
" and $i++;$_="";END{print"Total null count : $i
"}'
请参阅此链接以获取linux命令linux
http://linuxcommand.org/man_pages/grep1.html
用于显示行号,代码行和文件在终端或cmd中使用此命令,GitBash(由终端供电)
grep -irn"YourStringToBeSearch"
只是觉得我将来可以帮助你。要搜索多个字符串和输出行号并浏览输出,请键入:
egrep -ne 'null|three'
将会呈现:
2:example two null,
3:example three,
4:example four null,
egrep -ne 'null|three' | less
将以较少的会话显示输出
HTH
君