数値比較の絞り込みをするならgrepよりawkを使った方が良い
2022/02/01
grepで数値比較(いいかた合ってるかわからないけど、〇〇以上とか〇〇以下)で絞り込みをしたかったので調べたら、どうやらawkでやった方が簡単だった
ランダムな数値が改行区切りで入ったファイルがある
ここから20以上の数値だけに絞り込みたい
$ cat random_number.txt
81
10
43
11
2
42
37
62
31
11
86
9
44
10
87
17
72
78
6
21
grepで絞り込み
grepだと文字列として正規表現で絞り込みをしないといけない
最大値がわからないとすると、20未満を除外する正規表現を書いたほうが良さそう
今回の例だと難しくはなかったけど、可読性が悪すぎる
$ grep -v '^1*[0-9]$' random_number.txt
81
43
42
37
62
31
86
44
87
72
78
21
awkで絞り込み
awkなら数値の比較ができるので、あら簡単
$ awk '{ if ($0 >= 20) print $0 }' random_number.txt
81
43
42
37
62
31
86
44
87
72
78
21
おわり
絞り込み = grep じゃなかったんだなあ