使用“grep -of file1.txt file2.txt”(下面的文件内容),我得到输出:
and
if
pineapple
为什么缺少“dif”和“for”?我必须使用其他开关吗?
文件1.txt
and
dif
for
if
apple
pineapple
文件2.txt
andiforpineapple
答案1
如果您想针对每个指定的模式重新搜索输入文件:
$ cat patterns.txt
and
dif
for
if
apple
pineapple
$ cat source.txt
andiforpineapple
$ while read; do grep -o -e"$REPLY" source.txt; done <patterns.txt
and
dif
for
if
apple
pineapple
但是,如果源文件有多行,输出行顺序会与你期望的不同。由于你没有说明要用这个做什么,我不知道这是否能解决你的实际问题。
答案2
就像这样:
andiforpineapple
^found and
^continuing search from i
^found if
^continuing search from o
^found pineapple