为什么在下面的代码中测试 fgrep 的返回值总是 false?

为什么在下面的代码中测试 fgrep 的返回值总是 false?

我有以下脚本来查找 fileA 与 fileB 中缺失的项目并写入 fileC

script.sh fileA fileB fileC

脚本.sh:

rm $3
while IFS="" read -r inputline; do

fgrep -q \""$inputline"\" $1  
if [ 1 -eq $? ]; then
    echo \""$inputline"\" >>$3
fi
done <$2

我看到 fileB 中的所有内容都被转储到 fileC,我缺少一些基本的东西。 (aix 6、bash)

ps:文件有尾随空格,比较起来很重要

答案1

尝试

#!/usr/bin/bash
rm "$3"
while IFS="" read -r inputline
do
    grep -Fq "$inputline" "$1" && echo "$inputline" >> "$3"
done < "$2"

相关内容