所以我有以下两个命令:
grep 'substring1' file1.txt > outfile.txt
grep 'substring2' file2.txt > outfile.txt
我想将两个greps合并在一起,并将它们全部写入outfile.txt作为一个命令。这样的命令怎么样?
您可以轻松地将这两个命令组合在一起,例如:
grep 'substring1' file1.txt > outfile.txt ; grep 'substring2' file2.txt >> outfile.txt
“;”将两个命令分开后,第二个命令将在第一个命令完成后执行。
“>>”表示将输出附加到现有文件。 (如果文件不存在,则“>”没有区别)
您可以将此简单模式用于许多不同的任务。
两种可能性:
{
grep 'substring1' file1.txt
grep 'substring2' file2.txt
} > outfile.txt
或者内联:
{ grep 'substring1' file1.txt; grep 'substring2' file2.txt; } > outfile.txt
(注意结束大括号前的分号)。>>
进行第二次重定向:
grep 'substring1' file1.txt > outfile.txt
grep 'substring2' file2.txt >> outfile.txt
考虑到文件只打开一次,分组方法是可取的。如果你需要做一些写入两个grep
s之间的stdout的东西,第二种方法更可取。
好吧,首先,你列出这些命令的方式,他们将无法完成。你没有提供文件名,因此,grep将使用stdin,除非你给它一些输入,它将阻止。
话说回来....
如何在一个命令中完成所有操作?
egrep 'substring1|substring2' source_file.txt > outfile.txt
qazxsw poi允许匹配多个搜索字符串,由“|”分隔。
希望有所帮助。