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)
既然你知道目标文件的名字,你也可以这样做
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)