答案1
在写Q的时候弄清楚了,发布给后代:
tail -n+N file | grep ...
其中 N 是要跳过的行数减 1。
答案2
sed
可用于跳过初始行数。命令
sed '1,200d'
将删除前 200 行并保留所有其他行不变。
同样,awk
可以以类似的方式使用:
awk 'FNR > 200'
上面的命令将打印第 201 行及其之后的行,但丢弃前面的行。该FNR
变量是从当前文件读取的记录数(默认为行数)。
您可以轻松参数化它以从命令行获取数字:
awk -v n=200 'FNR > n'
您还可以将其与(替换withgrep
的功能)结合使用:grep
awk
awk -v n=200 'FNR > n && /pattern/' somefile
...哪里pattern
有一些扩展的正则表达式。
或者,要从命令行上的某个值获取模式,
awk -v n=200 -v p='pattern' 'FNR > n && $0 ~ p'
或者,更安全的是,使用环境变量,
pattern='pattern' awk -v n=200 'FNR > n && $0 ~ ENVIRON["pattern"]' somefile