我们怎样才能找到最后一次出现的搜索字符串(正则表达式)然后打印下一行呢?假设具有以下数据的文本文件
1 absc
1 sandka
file hjk
2 asdaps
2 amsdapm
file abc
所以,从这个文件中,我必须grep或awk最后一次出现的2并打印它后面的行。
答案 0 :(得分:5)
awk
总是很方便:
$ awk '/2/ {p=1; next} p{a=$0; p=0} END{print a}' file
file abc
/2/ {p=1; next}
当行中出现2
时,激活p
标记并跳过该行。p{a=$0; p=0}
当p
标志处于活动状态时,请存储该行并取消激活p
。END{print a}
打印存储的值,这恰好是最后一个,因为a
总是被覆盖。答案 1 :(得分:0)
使用grep
grep -A 1 '^2
'选项会在加一行的开头显示与2
匹配的行
然后使用tail -1
打印最后一行:
grep -A 1'^ 2'yourfile |尾巴-1