我有一个特定的单词,我想找出我的文件中出现的单词行号.
这是在ac shell脚本中发生的.
我一直试图用awk来寻找行号,但到目前为止我还没有能够.我也希望将该行号分配给变量.
Joh*_*024 18
要word在文件中查找并打印行号,请使用以下-n选项grep:
grep -n 'word' file
Run Code Online (Sandbox Code Playgroud)
这将打印行号和它匹配的行.
这将打印word文件出现在文件中的行数:
awk '/word/{print NR}' file
Run Code Online (Sandbox Code Playgroud)
这将打印行号和word出现的行:
awk '/word/{print NR, $0}' file
Run Code Online (Sandbox Code Playgroud)
您可以替换word为您喜欢的任何正则表达式.
这个怎么运作:
/word/
这选择包含的行word.
{print NR}
对于选定的行,将打印行号(NR表示记录号).您可以更改此信息以打印您感兴趣的任何信息.因此,{print NR, $0}将打印行号后跟行本身,$0.
使用命令替换:
n=$(awk '/word/{print NR}' file)
Run Code Online (Sandbox Code Playgroud)
假设我们要查找的正则表达式是在shell变量中url:
awk -v x="$url" '$0~x {print NR}' file
Run Code Online (Sandbox Code Playgroud)
和:
n=$(awk -v x="$url" '$0~x {print NR}' file)
Run Code Online (Sandbox Code Playgroud)