我有一个名为hello的文件,其中包含以下数据
onefish
onechicken
twofish
twochicken
threechicken
twocows
我想获得第二次发生chicken
的行号。
输出应为"4"
,因为chicken
在第4行第二次出现。
答案 0 :(得分:2)
您可以使用awk:
awk '/chicken/{++n; if (n==2) { print NR; exit}}' file
4
答案 1 :(得分:1)
grep -n chicken hello| sed -n '2 s/:.*//p'
答案 2 :(得分:0)
为了好玩,使用模式作为separtor并依靠字段
awk -F 'chicken' 'NF>1{if (2==++o)print NR}' YourFile
使用sed(不适合与awk比较)[^J
是CTRL + V + J,真正的新行]
sed -e '/chicken/H;g;s/\(\^J.*\)\{2\}//;t h' -e 'd' -e ':h' -e ' =;q' YourFile
答案 3 :(得分:0)
更短
$ awk '/chicken/ && ++n==2 {print NR}' file
如果输入文件很长,打印后添加exit
将停止处理。