参考:https://blog.51cto.com/zouqingyun/1750069

文件

a.txt

注意下面代码读取每一行字符串是根据line读取的,所有最后一行字符串后面要有换行,不然读取不到

  1. 123
  2. 124
  3. 125
  4. hello
  5. world
  6. good

b.txt

123
125
hello
desk
teacher

res.txt

结果

找相同

代码

#!/bin/sh
#set -x
SRC_FILE=$1
TARGET_FILE=$2
RESULT_FILE=$3

>$RESULT_FILE

while read LINE
do
grep $LINE $TARGET_FILE > /dev/null
if [ $? -eq 0 ]; then
echo $LINE >> $RESULT_FILE
fi
done < $SRC_FILE
#set +x

运行代码

image.png

找不同

代码

找a.txt中有,但是b.txt中没有的字符串;如果要找a中没有但b中有的,调换一下参数位置即可

#!/bin/sh
#set -x
SRC_FILE=$1
TARGET_FILE=$2
RESULT_FILE=$3

>$RESULT_FILE

while read LINE
do
grep $LINE $TARGET_FILE > /dev/null
if [ $? -ne 0 ]; then
echo $LINE >> $RESULT_FILE
fi
done < $SRC_FILE
#set +x

运行代码

image.png