Grep
如何避免使用 -
我正在嘗試使用 grep 從文件中僅獲取匹配的行。問題是,例如,當我使用以下表達式時:
grep -w AFFX-KIT-000088 textfile
它將返回:
AFFX-KIT-000088-A AFFX-KIT-000088
但是,我只想要完全匹配的表達式 AFFX-KIT-000088。我已經嘗試過 -F -E 並引用了。我需要 grep 行的文本文件非常大,我無法修改它(這也意味著我需要一個不涉及很多步驟的答案,因為它需要永遠處理)。
注意:
該文件實際上非常大並且有很多列(不僅僅是我用於 grep 的列)。
grep -x 'AFFX-KIT-000088' file
-x
強制匹配一條完整的線。您可能還想
-F
在匹配字元串時添加,而不是正則表達式。這可能會加快操作。該
-w
選項在這裡不起作用,因為-
它不是“單詞字元”。因此,子字元串AFFX-KIT-000088
inAFFX-KIT-000088-A
是一個完整的單詞。“單詞字元”是匹配的字元
[[:alnum:]_]
,即字母數字字元和下劃線。在多列數據中,假設製表符分隔的欄位和第 3 列中的匹配:
awk -F '\t' '$3 == "AFFX-KIT-000088"' file
也就是說,將第三個欄位與特定字元串進行比較。
當這樣的條件缺少關聯的操作時,預設操作是在條件為true時列印整個輸入記錄。如果您只想列印欄位的數據:
awk -F '\t' '$3 == "AFFX-KIT-000088" { print $3 }' file