在Linux上使用grep搜尋特定檔案型別


要在Linux中使用grep命令在特定檔案型別中搜索特定模式,可以使用-r選項遞迴搜尋目錄,並使用-E選項指定副檔名。例如,要在“test”目錄中的所有文字檔案中搜索“example”一詞,可以使用以下命令:

grep -r -E 'example' --include='*.txt' test/

此命令遞迴搜尋“test”目錄及其子目錄,查詢具有“.txt”副檔名幷包含“example”一詞的檔案。

你也可以結合使用find命令的-type和-exec選項來查詢特定檔案型別,然後對其執行命令。

find /path/to/dir -type f -name '*.txt' -exec grep 'example' {} +

此命令查詢給定目錄路徑中所有副檔名為.txt的檔案,然後對其執行grep命令來查詢“example”一詞。

執行一般搜尋

要在Linux中使用grep命令執行一般搜尋,只需指定要搜尋的模式和要搜尋的檔案或目錄即可。例如,要在“test.txt”檔案中搜索“example”一詞,可以使用以下命令:

grep 'example' test.txt

要在當前目錄中的所有檔案中搜索“example”一詞,可以使用以下命令:

grep 'example' *

要在當前目錄及其子目錄中遞迴搜尋,可以使用-r選項,如下所示:

grep -r 'example' .

你還可以使用-i選項忽略搜尋時的區分大小寫,如下所示:

grep -i 'example' test.txt

你還可以使用不同的選項和正則表示式來匹配搜尋中的特定模式。

也可以使用ack命令作為grep的替代方案,它專為搜尋大型程式碼庫而設計,並且具有更多高階選項。

ack 'example' .

指定檔案型別

要在Linux中使用grep命令在特定檔案型別中搜索特定模式,可以使用--include或--exclude選項來指定要包含在搜尋中或從搜尋中排除的檔案型別。

例如,要在“test”目錄中的所有文字檔案中搜索“example”一詞,可以使用以下命令:

grep -r 'example' --include='*.txt' test/

此命令遞迴搜尋“test”目錄及其子目錄,查詢具有“.txt”副檔名幷包含“example”一詞的檔案。

你還可以用逗號分隔多個檔案型別,如下所示:

grep -r 'example' --include='*.txt,*.md' test/

此命令遞迴搜尋“test”目錄及其子目錄,查詢具有“.txt”或“.md”副檔名幷包含“example”一詞的檔案。

你還可以使用--exclude選項從搜尋中排除某些檔案型別。例如,要在“test”目錄中的所有文字檔案中搜索“example”一詞,但要排除副檔名為“.bak”的檔案,可以使用以下命令:

grep -r 'example' --include='*.txt' --exclude='*.bak' test/

此命令遞迴搜尋“test”目錄及其子目錄,查詢具有“.txt”副檔名幷包含“example”一詞的檔案,但會排除副檔名為“.bak”的檔案。

你也可以結合使用find命令的-type和-exec選項來查詢特定檔案型別,然後對其執行命令。

find /path/to/dir -type f -name '*.txt' -exec grep 'example' {} +

此命令查詢給定目錄路徑中所有副檔名為.txt的檔案,然後對其執行grep命令來查詢“example”一詞。

也可以使用ack命令作為grep的替代方案,它專為搜尋大型程式碼庫而設計,並且具有更多高階選項。

ack -G '\.txt$' 'example' .

此命令查詢當前目錄路徑及其子目錄中所有副檔名為.txt的檔案,然後對其執行ack命令來查詢“example”一詞。

結論

總而言之,Linux中的grep命令是用於在文字檔案中搜索特定模式的強大工具。透過使用-r選項遞迴搜尋,-E選項指定副檔名,--include和--exclude選項指定檔案型別以及-i選項忽略區分大小寫,你可以輕鬆地在特定檔案型別中搜索特定模式。

此外,你還可以結合使用find命令的-type和-exec選項來查詢特定檔案型別,然後對其執行命令。

更新於:2023年1月25日

7K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告