如何获取文件中的第一个非注释行号?

时间:2014-04-07 15:06:02

标签: shell sed awk

我有一个大文件,可能在标题

中有一些注释
# Comment line 1
# Comment line 2
# ...
# Comment line ...
# ...
# Comment line N
123
234
345
...

我需要一个单行解决方案来获取数字“N + 1”,使用shell脚本实现这一目标的最优雅方法是什么?感谢

2 个答案:

答案 0 :(得分:4)

awk版本:

awk '$1~/^[^#]/{print NR; exit}' file

答案 1 :(得分:3)

试试这个sed one-liner:

sed  -n '/^\s*#/!{p;q}' file

好的,如果你只需要行号:

sed  -n '/^\s*#/!{=;q}' file

添加简短说明:

/^\s*#/! : regex, if the line does NOT start with 0 or more empty chars (tab/space)then a '#', the line is chosen for further step.

=  : print line no
q  : quit processing