grep指令尋找檔案內容
#grep是Linux指令列下常用來尋找過濾文字檔案內容的指令。最簡單的用法是:
grep apple fruitlist.txt
在fruitlist.txt檔案中找出包含apple的內容。
如果想忽略大小寫,可以用-i參數:
grep -i apple fruitlist.txt
如果想搜尋目錄裡所有文件,包括子目錄的話,並且在結果中顯示行號,可以用以下指令:
grep -nr apple *
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作業系統教學
#以上是grep指令查找文件內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!