在linux中,可以使用「grep 尋找內容檔案」指令簡單地尋找檔案內容;如果想要忽略大小寫,則可使用「grep -i 尋找內容檔案」指令;如果想要搜尋目錄裡所有文件,且結果中顯示行號,則可使用「grep -nr 尋找內容*」指令。
本教學操作環境:Red Hat Enterprise Linux 6.1系統、Dell G3電腦。
Linux查找檔案內容(grep)
#grep是Linux命令列下常用於尋找過濾文字檔案內容的命令。最簡單的用法是:
grep 查找内容 文件
如果想忽略大小寫,可以用-i參數:
grep -i 查找内容 文件
如果想搜尋目錄裡所有文件,包括子目錄的話,並且在結果中顯示行號,可以用以下指令:
grep -nr 查找内容 *
grep的語法支援正規表示式,正規表示式有些複雜,以後再講解。以下是一些有用的參數:
-A num, --after-context=num: 在結果中同時輸出符合行之後的num行
-B num, --before-context=num: 在結果中同時輸出匹配行之前的num行,有時候我們需要顯示幾行上下文。
-i, --ignore-case: 忽略大小寫
-n, --line-number: 顯示行號
-R, -r, --recursive: 遞迴搜尋子目錄
#-v, --invert-match: 輸出沒有符合的行
我們可以透過管道操作來讓grep變得更強大,管道操作就是把前面一條指令的輸出當作後面一條指令的輸入,從而把很多簡單的指令組合起來完成複雜的功能。例如,如果我們想查找包含apple的行,但又想過濾掉pineapple,可以用下面的命令:
grep apple fruitlist.txt | grep -v pineapple
如果我們想把搜尋結果保存起來,那麼可以把命令的標準輸出重定向到文件:
grep apple fruitlist.txt | grep -v pineapple > apples.txt
重定向符號>和管道操作符號|的區別是,重定向後面接的是一個文件,它後面不能再接任何文件或命令了;而管道操作後面接的是命令,可以無限地接下去。如果想以追加方式寫到文件,可以用>>。管道操作是Linux命令列的一種哲學,它是電腦技術中少有的能沿用數十年的技術之一。透過管道操作,一行指令可以完成Windows下上千行程式也不能完成的文字處理功能。
相關推薦:《Linux影片教學》
以上是linux怎麼使用grep指令來找出檔案內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!