如何获得行号?

时间:2014-06-13 09:52:16

标签: linux bash shell

我想从文件中获取行号。在出现5个破折号(-----)的文件中,我想获得该行号。 例如

Day to Day
------------------
Month
-----
Jan
feb
mar


Year
-----
2014
2013
2012

所以这里月份和年份有5个破折号。我想得到那个月份和年份的行号。 感谢。

4 个答案:

答案 0 :(得分:2)

您可以使用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

答案 1 :(得分:2)

如果您只想要行号,而不是后面的文字,则可以cut补充使用grep

grep -n '^-----$' file.txt | cut -f1 -d:

输出:

4
11

答案 2 :(得分:2)

sed较少使用的命令之一:

sed -n '/^-----$/=' file

答案 3 :(得分:1)

您可以将{-n选项与grep一起使用,以使grep输出行号。所以,它会是这样的:

 grep -n ^-----$ filename.txt