次のコードで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、バッシュ)

ps:ファイルには比較に重要な末尾のスペースがあります。

ベストアンサー1

努力する

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

おすすめ記事