用于多个目录中的文本文件的 grep 命令

dee*_*_86 4 command-line grep text-processing

我在特定目录 (main_directory) 中有 24 个目录。每个 24 目录都有一个名为 DATA.txt 的文本文件。

我需要使用 grep 命令为每个文本文件提取以下特定模式;

2* x  = 3800689.6402     y  = 882077.3636     z  = 5028791.2953
Run Code Online (Sandbox Code Playgroud)

2* x =部分对于所有 DATA.txt 都是常量。其他数字是可变的。我需要为每个 DATA.txt 提取以上行并将它们保存到另一个文本文件中。我可以在这个过程中使用哪个脚本?

mur*_*uru 10

要使用 递归搜索grep,请使用该-R选项。

要搜索确切的字符串,请使用-F,这样2*就不会将其视为正则表达式。

要仅搜索特定文件名,请使用该--include选项。综合:

grep -FR --include=DATA.txt '2* x' main_directory > another_text_file
Run Code Online (Sandbox Code Playgroud)


ter*_*don 5

既然你知道目标文件的名字,你也可以这样做

grep '^2\* x' */DATA.txt > newfile
Run Code Online (Sandbox Code Playgroud)

或者,使用awk

awk '^/2\* x/' */DATA.txt > newfile
Run Code Online (Sandbox Code Playgroud)

和 Perl:

perl -ne 'print if /2\* x/' */DATA.txt > newfile
Run Code Online (Sandbox Code Playgroud)