Text-Processing
根據特定列值選擇行
如何根據特定列的不同值選擇文本文件中的所有行?所需值不在特定區間內。
下面給出了我期望的一個簡短範例。
我的數據儲存在文本文件中
input.txt
1.0 21 2.5 23 4.0 21 6.5 45 9.0 30 16.5 46 2.0 78 1.0 20 1.6 19 2.5 25 4.0 40 5.2 16 6.5 25 9.0 47 10.0 14 16.5 60 18.5 65 20.0 57 . .etc
我想根據值為 2.5、6.5、16.5、…等的第一列選擇行
所以輸出將如下所示。我不想按第一列對輸出進行數字排序。
2.5 23 6.5 45 16.5 46 2.5 25 6.5 25 16.5 60
我正在尋找解決方案
awk
orsed
或paste
提前致謝。
您可以簡單地將數字串在一起作為
awk
條件:$ awk '$1==2.5 || $1==6.5 || $1==16.5' file 2.5 23 6.5 45 16.5 46 2.5 25 6.5 25 16.5 60
當然,如果您的清單很長,那會很煩人。另一種選擇是將所需的數字保存在另一個文件中:
$ cat wantedNums 16.5 2.5 6.5
然後用它來過濾你的輸入文件:
$ awk 'NR==FNR{a[$1]++; next} $1 in a' wantedNums file 2.5 23 6.5 45 16.5 46 2.5 25 6.5 25 16.5 60