grep 指令用於多個目錄中的文字文件

grep 指令用於多個目錄中的文字文件

我在特定目錄(main_directory)中有 24 個目錄。每24個目錄都有一個文字文件,其名稱為DATA.txt。

我需要使用 grep 命令為每個文字檔案提取以下特定模式;

2* x  = 3800689.6402     y  = 882077.3636     z  = 5028791.2953

2* x =部分對於所有 DATA.txt 都是不變的。其他數字是可變的。我需要為每個 DATA.txt 提取上面的行並將它們保存到另一個文字檔案中。我可以在此過程中使用哪個腳本?

答案1

若要使用遞歸搜索grep,請使用該-R選項。

要搜尋精確的字串,請使用-F,這樣2*就不會將其視為正規表示式。

若要僅搜尋特定檔案名,請使用--include選項。綜合:

grep -FR --include=DATA.txt '2* x' main_directory > another_text_file

答案2

由於您知道目標檔案的名稱,因此您也可以執行下列操作

grep '^2\* x' */DATA.txt > newfile

或者,與awk

awk '^/2\* x/' */DATA.txt > newfile

還有珀爾:

perl -ne 'print if /2\* x/' */DATA.txt > newfile

答案3

一般的做法:

grep -r <pattern>

或者

具體做法:

find -name <file patterns which you want to find> | xargs grep <pattern you looking for>

相關內容