如何grep以特定值開頭的多個字串

如何grep以特定值開頭的多個字串

我有一個由兩列和一堆數字組成的文件,我想搜尋並尋找第二列以 1.008 或 1.009 或 1.01 開頭的行,但我想列印第一列和第二列。

我試過:

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

假設你的文件命名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  

相關內容