grep
是否能够提供指定字出现的行号?
此外,是否可以使用grep
搜索从某条特定行向下开始的单词?
答案 0 :(得分:55)
使用grep -n
获取匹配的行号。
我认为没有办法让grep开始某个行号。为此,使用sed。例如,要从第10行开始并打印行号以及匹配行的行,请使用:
sed -n '10,$ { /regex/ { =; p; } }' file
要获取行号,您可以使用
grep -n 'regex' | sed 's/^\([0-9]\+\):.*$/\1/'
或者你可以简单地使用sed:
sed -n '/regex/=' file
结合两个sed命令,你得到:
sed -n '10,$ { /regex/= }' file
答案 1 :(得分:3)
您可以致电tail +[line number] [file]
并将其发送至显示行号的grep -n
:
tail +[line number] [file] | grep -n /regex/
此方法的唯一问题是grep -n
报告的行号比[line number] - 1
中的实际行号少[file]
。
答案 2 :(得分:2)
或者您可以使用
grep -n . file1 |tail -LineNumberToStartWith|grep regEx
这将负责编号文件中的行
grep -n . file1
这将打印last-LineNumberToStartWith
tail -LineNumberToStartWith
最后它会grep你想要的行(包括行号文件中的行号)
grep regEX