2012-01-31 84 views
12

我只是想知道我需要將什麼命令放到終端讀取文本文件,消除所有不包含某個關鍵字的行,然後將這些行打印到新文件中。例如,關鍵字是「系統」。我希望能夠將包含系統的所有行打印到新的單獨文件中。謝謝終端命令查找包含特定單詞的行?

回答

18

grep是你的朋友。

例如,你可以這樣做:

grep system <filename> > systemlines.out 

人grep和您可以得到更多有用的信息,以及(例如:行號,1 +線之前,1條+線後,否定 - 即:所有不包含grep等的行......)

如果您正在運行Windows,您可以安裝cygwin或者您也可以找到grep的win32二進制文件。

+0

默認的grep記得是區分大小寫的 – 2012-01-31 04:32:22

+2

你可以使用'grep的-i',使其不區分大小寫,但我不認爲這是一個必要條件。 – 2012-01-31 04:34:34

-1

grep的「系統」文件名>新文件名

你可能想使它有點聰明不包括包含「dysystemic」字線,但它是一個良好的開端。

+0

請注意,grep的-w選項會強制搜索表達式成爲「整個單詞」,即由空格(包括行的開頭和結尾)分隔。 – ghoti 2012-01-31 04:40:20

2

下面grep命令將解決烏爾問題

grep -i yourword filename1 > filename2 

with -i for case insensitiveness

without -i for case sensitiveness

學習如何grep的作品烏爾服務器上,通過以下命令參考手冊頁烏爾服務器上

man grep 
3
grep '\<system\>' 

將搜索包含系統,而不是系統作爲一個子行。

+0

這也有幫助! – willykao 2012-01-31 05:44:49