У меня есть огромный каталог с лог-файлами, и я хочу переместить файлы с определенной «фразой» в нем.
то есть. log1.csv ------, содержащий слово "xzy" log2.csv ------, содержащий слово "abc" log3.csv ------, содержащий слово "xzy" .. log1000.csv --- --- содержащий слово "123"
Теперь я хочу переместить (или скопировать) все * .csv С "xyz" в нем в новый каталог
Regaards, ET
find
и grep
:
find /dir/ -type f -name 'log*.csv' -exec grep -q 'xyz' {} \; -exec mv -t /target/ {} \;
find /dir/ -type f -name 'log*.csv'
находит все log<anything>.csv
файлы в каталоге /dir
-exec grep -q 'xyz' {} \;
выполнения grep
на каждом найденном файле для соответствия для шаблона Regex xyz
-exec mv -t /target/ {} \;
перемещает подобранные файлы (на основе статуса выхода grep
; успех (0
) подобранные средства) от предыдущего шага в целевой каталог /target