No exemplo da pergunta, parece que deve funcionar, com relação ao uso de fgrep
.
O que parece errado é que o grep irá - se um outputfile.txt
existir antes - provavelmente irá procurar novamente em sua própria saída, dependendo do tamanho do buffer e dos tamanhos de entrada. Se outputfile.txt
não existia antes, parece que *.txt
não corresponderá, porque não existe no momento da correspondência.
Realmente não parece o motivo do seu problema, mas vale a pena testar o que acontece quando outputfile.txt
é armazenado em outro lugar.
Se não é isso, o que você poderia fazer?
Nos comentários, você mostra um exemplo inputfile.txt
que causa o problema.
Eu assumo que o problema é causado por uma ou mais linhas nesse arquivo - quando usado com os mesmos arquivos *.txt
.
Para descobrir quais linhas são o problema, você pode fazer uma pesquisa binária para as linhas: Você remove metade das linhas e tenta saber se funciona. Se o problema desaparecer, use as linhas removidas para continuar, caso contrário, as linhas restantes. Agora você repete isso até que você tenha apenas uma ou algumas linhas restantes - e nesse ponto você provavelmente já poderá ver a causa.