grep能夠僅顯示與搜索模式匹配的單詞嗎?

有沒有一種方法能夠使grep輸出從與搜索表達式匹配的文件中輸出的「單詞」? 正則表達式

若是我想在多個文件中找到「 th」的全部實例,則能夠執行如下操做: 工具

grep "th" *

可是輸出將是這樣的(我大膽); 測試

some-text-file : the cat sat on the mat  
some-other-text-file : the quick brown fox  
yet-another-text-file : i hope this explains it thoroughly

使用相同的搜索,我但願它輸出的是: ui

the
the
the
this
thoroughly

使用grep能夠嗎? 仍是使用其餘工具組合? this


#1樓

$ grep -w

摘自grep手冊頁: spa

-w:僅選擇那些包含組成整個單詞的匹配項的行。 測試是匹配的子字符串必須在該行的開頭,或者必須在非單詞組成字符以前。 code


#2樓

grep命令僅用於匹配和perl 文檔

grep -o -P 'th.*? ' filename

#3樓

我有一個相似的問題,正在尋找grep / pattern regex和「找到匹配的模式」做爲輸出。 字符串

最後,我使用了egrep(在grep -e或-G上的正則表達式沒有給我相同的egrep結果)和-o選項 get

因此,我認爲這可能相似於(我不是正則表達式大師):

egrep -o "the*|this{1}|thoroughly{1}" filename

#4樓

awk ,無需工具組合。

# awk '{for(i=1;i<=NF;i++){if($i~/^th/){print $i}}}' file
the
the
the
this
thoroughly

#5樓

試試grep -o

grep -oh "\w*th\w*" *

編輯:從菲爾的評論匹配

文檔

-h, --no-filename
    Suppress the prefixing of file names on output. This is the default
    when there is only  one  file  (or only standard input) to search.
-o, --only-matching
    Print  only  the matched (non-empty) parts of a matching line,
    with each such part on a separate output line.
相關文章
相關標籤/搜索