Intereting Posts
Как просмотреть графическое представление приложения с помощью ssh Огромное использование диска на виртуальной машине разработки под управлением Centos 7 понять выход stty -a и изменить ctrl backspace на простое backspace Установка дополнения Firefox в глобальном масштабе без извлечения архива .xpi Как присвоить значение переменной внутри цикла for в bash? Почему для определения неправильного пароля требуется больше времени, чем для определения правильного? как указать, какой терминал используется при запуске gtk Неверная корневая оболочка в файле / etc / passwd Ошибка ввода-вывода, но плохой блок не указан в syslog Как замедлить работу сети Создать повторно устанавливаемую ОС ISO RHEL с помощью специального программного обеспечения dirname недействительный параметр `b` SOX обнаруживает тишину при чтении mp3 с url Список всех флагов файла? Как отключить * естественную прокрутку?

Выполнение сценария оболочки из командной строки

У меня есть Perl-скрипт, который преобразует файл в формат json и записывает вывод в отдельный каталог. Он принимает 2 параметра, имя файла и каталог вывода. Сценарий должен запускаться на нескольких файлах, которые заканчиваются определенным расширением, таким как .abc.

Я хочу найти каждый файл в определенном каталоге с расширением .abc и запустить мой скрипт против него. Я пытаюсь запустить из командной строки

find "path to directory" -name '*.abc' -exec ./ConvertFile {} "output_directory" 

Команда возвращает find: missing argument to '-exec'

Я новичок в сценариях perl и shell. Я могу запустить скрипт для каждого отдельного файла. Однако в любом каталоге может быть десятки файлов, и их нужно будет конвертировать «на лету», потому что исходные файлы часто меняются. Может ли кто-нибудь сказать мне, что не так с моей записью в командной строке? благодаря

Вы должны завершить вызов -exec с помощью \; , Это должно делать свое дело.

  find "path to directory" -name '*.abc' -exec ./ConvertFile {} "output_directory" \;