別のファイルに印刷しないで、ファイルの最初の2行を削除しようとしています。派手なものを探していません。ここに私の(失敗した)awkの試みがあります:
awk '{ (NR > 2) {print} }' myfile
次のエラーがスローされます。
awk: { NR > 2 {print} }
awk: ^ syntax error
例:
「myfile」の内容:
blah
blahsdfsj
1
2
3
4
私が結果にしたいこと:
1
2
3
4
テールを使用:
tail -n+3 file
manページから:
-n, --lines=K
output the last K lines, instead of the last 10; or use -n +K
to output lines starting with the Kth
どうですか:
tail +3 file
OR
awk 'NR>2' file
OR
sed '1,2d' file
あなたはもうすぐそこにいます。代わりにこれを試してください:
awk 'NR > 2 { print }' myfile
awkはルールベースであり、ルールが成功すると、そのブロックが実行される前に、ルールは裸(つまり、中括弧なし)に見えます。
また、Jaypalが指摘したように、awkでは、ルールに一致する行を印刷するだけであれば、アクションを省略してコマンドを簡略化することもできます。
awk 'NR > 2' myfile
awk
はpattern{action}
ステートメントに基づいています。あなたの場合、pattern
はNR>2
で、実行したいaction
はprint
です。このaction
は、default action
of awk
でもあります。
でも
awk 'NR>2{print}' filename
うまくいくでしょう、あなたはそれを短くすることができます
awk 'NR>2' filename
。