Como mover e agrupar arquivos de texto com base em seu conteúdo?

0

Imagine que eu tenha 100 arquivos de texto na pasta X. 30-40 arquivos de texto contém a palavra " Cookies ".

Eu quero copiar todos esses arquivos de texto para a pasta Y, que tem a palavra " Cookies " dentro dele.

Qual é a maneira mais rápida e eficiente de fazer isso usando cli?

    
por Mike Ross 12.05.2017 / 14:24

1 resposta

1

Algo como isso funciona:

grep -l 'Cookies' /Path/to/X/*.txt | xargs -I files mv files /Path/to/Y/
  • grep -l 'Cookies' /Path/to/X/*.txt :

    • procurará todos os *.txt arquivos contém Cookies , altere para * para qualquer arquivo.
    • -l significa apenas imprimir os nomes dos arquivos.
  • xargs -I files mv files /Path/to/Y/

    • os moverá para o caminho desejado.

Ou até mesmo em vez de xargs , podemos usar um loop:

grep -l 'Cookies' /Path/to/X/*.txt | while read i; do mv "$i" /path/to/x/; done
    
por Ravexina 12.05.2017 / 14:29