grep --files-with-matches '>' .
Pesquise >
no diretório atual ( .
) e imprima apenas os nomes dos arquivos correspondentes ( --files-with-matches
).
Note que grep
não retornará qualquer coisa se você der a ele um diretório ( .
) mas esquecer de habilitar o modo "recursivo". O comando correto seria
grep --files-with-matches --recursive '>' .
ou simplesmente
grep -Rl '>' .
| sort
| uniq
Classifique os resultados e remova as duplicatas.
| xargs perl -pi~ -e 's/9Kp/9K /' /home/user/DATAFILE.DAT
Execute o comando fornecido ( perl ...
) com cada palavra 1 do stdin passado como argumentos adicionais.
Todos os arquivos dos resultados grep
e também o arquivo /home/user/DATAFILE.DAT
são atualizados substituindo o texto " 9Kp
" por " 9K
". Os arquivos antigos são copiados com um til à direita.
1 Nota: palavra , não linha . Isso significa que um nome de arquivo com espaços será tratado como vários nomes. xargs -d'\n'
seria melhor, embora não seja perfeito.