我想从文件中获取行号。在出现5个破折号(-----)的文件中,我想获取该行号。 例如如何获取行号?
Day to Day
------------------
Month
-----
Jan
feb
mar
Year
-----
2014
2013
2012
所以这里的年份和月份有5个dashes.i想要得到那个月和年线号。 谢谢。
我想从文件中获取行号。在出现5个破折号(-----)的文件中,我想获取该行号。 例如如何获取行号?
Day to Day
------------------
Month
-----
Jan
feb
mar
Year
-----
2014
2013
2012
所以这里的年份和月份有5个dashes.i想要得到那个月和年线号。 谢谢。
您可以使用-n选项与grep
来制作grep
输出行号。因此,这将是这样的:
grep -n ^-----$ filename.txt
您可以使用AWK:
awk '/-{5}/{print NR, $0}' file
2 ------------------
4 -----
11 -----
要获得唯一的行号使用方法:
awk '/-{5}/{print NR}' file
2
4
11
编辑:如果你想找到确切的5个破折号线则使用:
awk '/^-{5}$/{print NR}' file
4
11
我删除了我的,因为它与你的相似。如果要求是5破折号,那么为什么你的命令获得行号2? –
它发现至少有5个破折号不完全是5破折号,但我添加了一个awk版本,找到确切的5破折号的行。 – anubhava
如果你只是想后面的行号,而不是文字,你可以在补用cut
的grep
:
grep -n '^-----$' file.txt | cut -f1 -d:
输出:
4
11
一个sed
的较少使用的命令:
sed -n '/^-----$/=' file
可能的重复[使用Bash脚本查找文件中的字符串行号](http://stackoverflow.com/questions/20026370/using-bash-script-to-find-line-number-of-string- in-file) – CSchulz
-1因为没有尝试解决自己的问题。 – DBedrenko