我有一個文本文件,包含許多行和列,我想通過'列名'來grep列。linux grep模式列數未知數
M121 M125 M123 M124 M131 M126 M211 N
0.41463252 1.00296561 -0.1713496 0.15923644 -1.49682602 -1.9478695 1.45223392 …
-0.46775802 0.14591103 1.122446 0.83648981 -0.3038532 -1.1841548 2.18074729 …
0.67736835 2.12969375 -0.8187298 0.13582824 -1.49290987 -0.6798428 1.04353114 …
0.08673344 -0.40437672 1.8441559 -0.63679375 0.47998832 0.1702844 0.54029264 …
-0.32606297 -0.95551833 0.6157599 0.02819133 1.44818627 -0.9528659 0.09207864 …
-0.51781121 0.88806507 -0.2913757 -0.00463802 0.05037374 0.953773 0.01244763 …
-0.25724472 0.05119051 0.2109025 -0.26083822 -0.52094072 -0.938595 -0.01275275 …
1.94348766 -1.83607523 1.2010512 -0.54109756 -0.88323831 -0.6263788 -0.96973544 …
0.1900408 -0.61025656 0.4586306 -0.69181051 -0.90713834 0.3589271 0.6870383 …
0.54866057 -0.03861159 -1.505861 0.54871682 -0.24602601 -0.3941754 0.85673905 …
例如,我想grep M211列但我不知道列的數量。我想:
awk '$i == "M211"' filename or awk '$0 == "M211"' filename
AWK:非法場$(),名稱爲 「我」 輸入記錄編號1,文件名 源1號線
有沒有什麼解決辦法嗎?謝謝。
爲什麼你的例子就是選擇一個列名,M211,以「grep的」,它不是在你的樣品輸入存在嗎? –
@EdMorton我有很多列,其中之一是M211,如果我選擇M121或M125,恐怕我得到的答案是awk'$ 1 ==「M121」'文件名或awk'$ 2 ==「M125 「'文件名不是我想要的答案。我想得到的答案是我不知道列的數量,但可以通過'列名'選擇列。謝謝。 –
如何選擇不存在的示例幫助那個列名?您錯過了在這裏提出問題所需的預期輸出(請參閱[問]],因爲您發佈的樣本輸入和命令行的預期輸出是什麼都不是。給我們一個命令來測試這個產生沒有輸出,因爲你提供的測試輸入是沒有意義的 - 選擇一個存在的值,這樣你可以在你的問題中顯示有意義的期望輸出,並且我們有一些具體的測試對象。現在我們只是猜測你想要的輸出是什麼。 –