たくさんの数字が入った 2 つの列で構成されたファイルがあり、2 番目の列が 1.008 または 1.009 または 1.01 で始まる行を検索して見つけたいのですが、1 番目と 2 番目の列の両方を印刷したいのです。
私は試した:
grep -Ev '^1.008|^1.009|^1.01'
しかし、それは機能しません。
答え1
表形式のデータで 1 つのフィールドを検索する場合、awk
黄金のチケットは次のようになります。
awk '$2 ~ /^1.0(0[89]|1$)/ { print $1,$2 }' /path/to/inputfile
これにより、指定したパターン (「で始まる1.009 or 1.009
か等しい1.01
」) が 2 番目のフィールドに適用され、一致する場合は 1 番目と 2 番目のフィールドが出力されます。
答え2
ファイル名がexercise.txt
次のようになっていると仮定します。
a 1.008
b 1.00005
c 1.01
d 1.01
e 1.009
awk '( $2 >= 1.008 && $2 < 1.02 ) { print $1,$2 }' exercise.txt > output.txt
次に、次のようになります。
$ head output.txt
a 1.008
c 1.01
d 1.01
e 1.009