Como eu poderia pesquisar o padrão de um arquivo para outro e salvar o resultado de cada padrão em um novo arquivo?

2

Eu gostaria de pesquisar os padrões de arquivo1 no arquivo2 e salvar o resultado de cada padrão no novo arquivo. Eu sei como fazer isso com todo o padrão para pesquisar no arquivo 2 e salvar os resultados com o seguinte:

grep -wFf file1 file 2 > outputfile

Mas o problema é que eu gostaria de fazer um arquivo de saída seprate para cada padrão.

Como posso fazer isso?

    
por TCFP HCDG 16.06.2016 / 15:50

1 resposta

3

O utilitário grep não permite que você faça isso da caixa, portanto, nesse caso, você terá que recorrer a um loop.

Algo nas linhas disso fará o truque:

i=0
while read -r pattern; do
    outfile="data-$(( i++ )).out"
    fgrep -w "$pattern" data.in >$outfile
    if [ ! -s $outfile ]; then
        rm $outfile
    fi
done <patterns.in

Isso também remove todos os arquivos vazios (de padrões que não correspondem).

    
por 16.06.2016 / 17:09

Tags