我們可以使用grep來返回匹配單詞的行,但是如何才能返回單詞? 說有:如何獲得匹配的單詞,而不是一行
The original MC68000 was fabricated using
如何返回MC68000
?
我們可以使用grep來返回匹配單詞的行,但是如何才能返回單詞? 說有:如何獲得匹配的單詞,而不是一行
The original MC68000 was fabricated using
如何返回MC68000
?
這似乎是一個經常被問到的問題。 GNU grep有這個-o
(顯示匹配only
不是整條線)。這在Single Unix Specification中沒有描述。
用sed:
grep "myword" myfile | sed "s/.*\(myword\).*/\1/"
這是最符合標準的答案,因爲它不依賴於GNU擴展。但是,由於您可以在sed中執行所有操作,所以它對grep沒有任何用處。'sed -n -e's /.* \(myword \)。*/\ 1 /'-e'/ myword/p 「'。 '-n'停止響應每一行,所以你用'p'打印你想要的東西(最後一個字母「grep」)。 – Kaz 2012-03-28 21:26:18
我不知道這是他在問什麼。我明白他希望返回3場,而不是過濾。 – gdoron 2012-03-28 21:07:41
似乎很清楚,例如'grep -E -o'MC68 [0-9] +''將與'MC68000'相匹配,只顯示那個,而不是整行。看起來demaxSH接受了答案。 – Kaz 2012-03-28 21:22:12