Ami*_*mit 33 bash awk sed lines
我试图删除文件的前两行,只是不打印到另一个文件.我不是在寻找一些奇特的东西.这是我在awk的尝试(失败):
awk '{ (NR > 2) {print} }' myfile
Run Code Online (Sandbox Code Playgroud)
抛出以下错误:
awk: { NR > 2 {print} }
awk: ^ syntax error
Run Code Online (Sandbox Code Playgroud)
例:
'myfile'的内容:
blah
blahsdfsj
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
Rob*_*obS 71
使用尾巴:
tail -n+3 file
Run Code Online (Sandbox Code Playgroud)
从手册页:
-n, --lines=K
output the last K lines, instead of the last 10; or use -n +K
to output lines starting with the Kth
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 29
怎么样:
tail +3 file
Run Code Online (Sandbox Code Playgroud)
要么
awk 'NR>2' file
Run Code Online (Sandbox Code Playgroud)
要么
sed '1,2d' file
Run Code Online (Sandbox Code Playgroud)
Chr*_*s J 24
你快到了.试试这个:
awk 'NR > 2 { print }' myfile
Run Code Online (Sandbox Code Playgroud)
awk是基于规则的,并且规则在它通过之前执行的块之前显示为裸(即没有大括号).
正如Jaypal所指出的那样,在awk中,如果你想要做的就是打印符合规则的行,你甚至可以省略动作,从而简化命令:
awk 'NR > 2' myfile
Run Code Online (Sandbox Code Playgroud)
awk
基于pattern{action}
陈述.在你的情况下,pattern
是NR>2
和action
要执行的print
.这action
也是default action
的awk
.
即便如此
awk 'NR>2{print}' filename
会工作正常,你可以缩短它
awk 'NR>2' filename
.