Как распечатать совпадение, а также запустить -exec

Я хотел запустить find а затем выполнить скрипт в каждом матче; однако я хотел напечатать имя сопоставленного файла над выводом каждого exec . Как я могу произвести следующий вывод:

 $ find . -name 'something' -exec sh script.sh {} \; ./something_1 output from script.sh something_1 ./something_2 output from script.sh something_2 

В настоящее время я получаю только результат от script.sh . Я попробовал -exec echo {} && sh script.sh {} \; без успеха.

Я бы предпочел решение с использованием -exec или xargs -print0 , то есть не подверженным проблемам с пробелом.

2 Solutions collect form web for “Как распечатать совпадение, а также запустить -exec”

find отпечатки всех соответствующих файлов по умолчанию, если вы не укажете никаких других действий.

Когда вы выполняете -exec ... , он заменяет -print .

Когда вы помещаете два действия рядом друг с другом, это означает AND .

Так что просто обоим:

 $ find . -name 'something' -print -exec sh script.sh {} \; 

Попробуйте сделать это:

 $ find . -name 'something' -exec sh script.sh {} \; | script.sh | script.sh 
  • bash find using variable
  • Как удалить все внутри каталога, без конкретной папки и содержимого
  • Поиск файлов в каталоге
  • Количество номеров каталогов
  • ls или find, чтобы исключить двоичные файлы
  • копировать файлы, измененные после определенной даты с помощью cp-переключателей
  • Как найти текст в файле и найти его в нескольких подпапках?
  • Понимание опции -exec `find`
  • Неумышленно ли я удалил весь свой жесткий диск?
  • Найти результат, используемый в выражении if
  • Команда поиска возвращает неверные файлы
  • Linux и Unix - лучшая ОС в мире.