来自文件的 Grep 命令

Pep*_*lac 1 unix linux grep

我有2个文件。
在第一个文件中,我有我想在第二个文件中找到的 teplates。
我必须如何使用 grep 来保存输出的第一个文件中的保存顺序。
例子:

文件 1:
一个
dc
作为

文件 2:
aadfadf
asdva
vaad
a
dccsads
asas

我使用这个命令:
grep -f file1 file2 >> file3

Igo*_*bin 5

这会有点慢,但很简单:

TEMP1=$(mktemp /tmp/grep.XXXXXXXXXXX)
TEMP2=$(mktemp /tmp/grep.XXXXXXXXXXX)
cat file2 > $TEMP1
cat file1 | while read line
do 
  grep "$line" $TEMP1
  grep -v "$line" $TEMP1 > $TEMP2
  mv $TEMP2 $TEMP1
done > result
rm $TEMP2 $TEMP1
Run Code Online (Sandbox Code Playgroud)

中的结果列表result

我使用临时文件$TEMP1$TEMP2grep -v避免结果中的重复。