Por que testar o valor de retorno do fgrep sempre é falso no código abaixo?

0

Eu tenho o script abaixo para encontrar itens ausentes do fileA comparado ao fileB e gravar no fileC

script.sh fileA fileB fileC

script.sh:

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

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

Eu vejo tudo em fileB sendo despejado para fileC, eu estou faltando alguma coisa básica. (aix 6, bash)

ps: arquivos têm espaços à direita e isso é importante na comparação

    
por dbza 27.03.2015 / 22:14

1 resposta

1

Tente

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