Как перемещать и группировать текстовые файлы на основе их содержимого?

Представьте, что у меня есть 100 текстовых файлов в папке X. 30-40 текстовых файлов содержит слово «Cookies».

Я хочу скопировать все эти текстовые файлы в папку Y, в которой есть слово « Cookies [ ! d1] ".

Это быстрый и эффективный способ сделать это с помощью cli?

0
задан 13 May 2017 в 08:16

3 ответа

Что-то вроде этого будет работать:

grep -l 'Cookies' /Path/to/X/*.txt | xargs -I files mv files /Path/to/Y/
grep -l 'Cookies' /Path/to/X/*.txt: будет искать все файлы *.txt, содержащие Cookies, изменить его на * для любого файла. -l означает только распечатать имена файлов. xargs -I files mv files /Path/to/Y/ переместит их на нужный путь.

Или даже вместо xargs мы можем использовать цикл:

grep -l 'Cookies' /Path/to/X/*.txt | while read i; do mv "$i" /path/to/x/; done
1
ответ дан 22 May 2018 в 22:41

Что-то вроде этого будет работать:

grep -l 'Cookies' /Path/to/X/*.txt | xargs -I files mv files /Path/to/Y/ grep -l 'Cookies' /Path/to/X/*.txt: будет искать все файлы *.txt, содержащие Cookies, изменить его на * для любого файла. -l означает только распечатать имена файлов. xargs -I files mv files /Path/to/Y/ переместит их на нужный путь.

Или даже вместо xargs мы можем использовать цикл:

grep -l 'Cookies' /Path/to/X/*.txt | while read i; do mv "$i" /path/to/x/; done
1
ответ дан 18 July 2018 в 13:25

Что-то вроде этого будет работать:

grep -l 'Cookies' /Path/to/X/*.txt | xargs -I files mv files /Path/to/Y/ grep -l 'Cookies' /Path/to/X/*.txt: будет искать все файлы *.txt, содержащие Cookies, изменить его на * для любого файла. -l означает только распечатать имена файлов. xargs -I files mv files /Path/to/Y/ переместит их на нужный путь.

Или даже вместо xargs мы можем использовать цикл:

grep -l 'Cookies' /Path/to/X/*.txt | while read i; do mv "$i" /path/to/x/; done
1
ответ дан 24 July 2018 в 20:10

Другие вопросы по тегам:

Похожие вопросы: