Вот что я бы использовал:
find (your find args here) \
| xargs fgrep '000000' /dev/null \
| awk -F: '{print $1}' \
| xargs -n 1 -I ORIGINAL_FILENAME /bin/echo /bin/cp /path/to/offblack.png ORIGINAL_FILENAME
Расширяя, найдите все интересующие вас файлы, вставьте в них grep для строки '000000' (добавив / dev / null в списокфайлы в случае, если один из сгенерированных fgrep
s заканчивался только одним именем файла - это гарантирует, что выходные данные всегда форматируются как «имя файла:"), удалите только имена файлов, затем по одному скопируйте в эти файлы файл offblack.png. Обратите внимание, что я вставил туда /bin/echo
. Это ваш пробный запуск. Удалите эхо, чтобы запустить егопо-настоящему.
Если вы имеете в виду, что имена файлов содержат "000000":
find . -type f -a -name '*000000*' -exec /bin/echo /bin/cp /path/to/offblack.png {} \;
Гораздо проще. :-) Найти каждый файл в текущем каталогес именем, содержащим вашу строку, и запустите над ней копию offblack.png. Опять же, я дал вам пробный прогон. Удалите эхо для вашей живой пожарной тренировки.: -)