grep padrão de pesquisa em vários arquivos e saída para arquivos diferentes

1

Eu tenho um diretório / foo / bar que contém muitos arquivos, digamos a.file , b.file , c.file e assim por diante. Estou usando grep para pesquisar o padrão xyz dentro de cada arquivo desse diretório, mas desejo enviar o resultado em novos arquivos, como a.new.file , se a linha foi encontrada em a.file , b.new.file se a linha A linha foi encontrada em b.file e assim por diante.

Minha tentativa: grep -ri "xyz" /foo/bar/* funciona bem na tela, cada linha do resultado começa com o caminho para o arquivo que contém o padrão. Este caminho é armazenado em uma variável que eu possa usar para criar os novos arquivos?

Editar:

O conteúdo de a.new.file deve ser todas as linhas que correspondem a xyz de a.file

O conteúdo de b.new.file deve ser todas as linhas que correspondem a xyz de b.file E assim por diante.

    
por Alex 22.08.2018 / 10:26

1 resposta

3
    for T in *.file
    do
      grep xyz "$T" > "${T%.file}.new.file"
    done
    
por 22.08.2018 / 10:45

Tags