総行数が一定数より大きい場合にファイルを印刷したい。例えば:
cat FILE
A
B
C
awk '{c+=1} END {print c}' FILE
3
で FILE をフィルタリングしたいc
。c
の場合>
、<
など。
例えば:
awk '{c+=1} END if c (c>2) print $0' FILE
しかし、このコマンドでエラー メッセージが表示されます。
総行数が一定数より大きい場合にファイルを印刷したい。例えば:
cat FILE
A
B
C
awk '{c+=1} END {print c}' FILE
3
で FILE をフィルタリングしたいc
。c
の場合>
、<
など。
例えば:
awk '{c+=1} END if c (c>2) print $0' FILE
しかし、このコマンドでエラー メッセージが表示されます。
これは必要ありませんawk
:
[ $(wc -l < file) -ge 2 ] && cat file
^^^^^^^^^^ ^^^^^ ^^^^^^^^
number of lines | print file if condition matched
compare value
また、ファイルを読み取った後にEND
block が評価されるため (つまりEND )、構文がうまくいかないことに注意してください。print
awk '{c+=1} END if c (c>2) print $0' FILE
ブロックはそのEND
コマンドを括弧内に格納する必要があることに注意してください.print
print $0
NR
awk
全体として、コマンドが機能し、行数が 2 より大きい場合に最後の行を出力するには、次を使用できます。
awk 'END{if (NR>2) {print}}' FILE
$ [ $(wc -l a | cut -d' ' -f1) -ge 2 ] && cat a
A
B
C
$ [ $(wc -l a | cut -d' ' -f1) -ge 5 ] && cat a