特定の値で始まる複数の文字列をgrepする方法

特定の値で始まる複数の文字列をgrepする方法

2つの列と複数の数字からなるファイルがあります。 2番目の列が1.008、1.009、または1.01で始まる行を検索して検索したいのですが、最初と2番目の列を印刷したいです。

私は試した:

grep -Ev '^1.008|^1.009|^1.01'

しかし、うまくいきません。

答え1

テーブルデータからフィールドを検索すると、awkゴールデンチケットは次のようになります。

awk '$2 ~ /^1.0(0[89]|1$)/ { print $1,$2 }' /path/to/inputfile

これにより、指定したパターン(「次に開始1.009 or 1.009または等しい1.01」)が2番目のフィールドに適用され、一致する場合は最初と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  

関連情報