2014-10-07 44 views
0

我有一個文件包含例如下面的字符串。使用grep(或任何其他類似linux cmd工具的grep)打印文件中匹配特定子字符串的整個單詞

File: 
She sells sea shells on the seashore. 

我想用grep(或任何其它的grep如Linux CMD工具)能夠打印匹配特定子串/正則表達式的整個單詞。在這種情況下,我想在文件中打印所有與匹配以換行符中的se開頭的單詞相關的單詞。

Required output: 
sells 
sea 
seashore 
+0

grep和grep只有?? – Jite 2014-10-07 21:44:38

+0

你是對的....任何工具實際上都會工作......讓我更新問題:) – lordlabakdas 2014-10-07 21:45:28

+0

@Jite值得注意的是'regex' SO標籤要求該標籤的用戶也包含該語言的標籤或他們有正則表達式問題的工具(因爲不同的langs /工具有不同的正則表達式風格和規則)。所以,這裏指定'grep'是很好的。 – ajp15243 2014-10-07 21:49:47

回答

2

使用\<錨本身對單詞的開頭,並\w*增加0個或多個單詞字符:

$ grep -o '\<se\w*' filename.txt 
sells 
sea 
seashore 
$ 
+0

只是一個側面說明,而是使用單引號而不是雙引號來防止shell擴展錯誤。 – Jite 2014-10-08 20:48:51

1
grep -oP '(^|)\Kse[^ .]*' 

輸出:

低於所要求的輸出被送給
sells 
sea 
seashore 
+0

這也是一個選項 – lordlabakdas 2014-10-07 22:13:02

1

這會做詭計

grep -o '\bse\w*' filename.txt 

任何人都可以做得更漂亮或看到一個理由,這不應該工作?

相關問題