如何多次运行单个命令,同时每次运行命令时更改一个单词?

如何多次运行单个命令,同时每次运行命令时更改一个单词?

我有一个这样的命令:

grep word1 file.txt | grep word2 | grep word3

我希望能够多次运行整个命令,同时每次更改“word1”的值。我有一个名为 insert.txt 的文件,其中包含每次运行时我想用来替换“word1”的单词列表。

我怎样才能完成这样的事情?

答案1

如果你想把每一行都一次从文件中insert.txt作为要搜索的模式file.txt,这将仅输出file.txt与所考虑的行相匹配的行insert.txt

#!/bin/bash
while IFS= read -r word1; do
       grep -- "$word1" file.txt | grep "word2" | grep "word3"
done < insert.txt

这里--给出的是用来表示选项的结束grep,否则以 开头的模式-将不起作用。

另一方面,如果要使用insert.txtas 模式的所有行进行搜索,请运行以下命令file.txt 立刻,这将匹配file.txt与 中的任意行匹配的所有行insert.txt

grep -Ff insert.txt file.txt | grep "word2" | grep "word3"

相关内容