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

Я пытаюсь конвертировать пакет латексных файлов с помощью catdvi.

Команда, которую я использую для одного файла:

catdvi -e 1 -U 1.dvi | sed -re "s/\[U\+2022\]/*/g" | sed -re "s/([^^[:space:]])\s+/\1 /g" > 1.txt

Однако я хочу выполнить одну и ту же команду для всех файлов от 1.dvi до 30.dvi. Когда я сделал:

for f in *.dvi ; do catdvi -e 1 -U $f | sed -re "s/\[U\+2022\]/*/g" | sed -re "s/([^^[:space:]])\s+/\1 /g" > "${f%.dvi}.txt"; done;

Выдает ошибку, ожидающую 0 или 1 аргумент, полученную 10 и т. Д.

Какие изменения мне нужно сделать в команде?

1 ответ

Решение

Ответ на аналогичный вопрос будет применяться и здесь. Итак, вот ссылка:

Пакетная команда, требующая перенаправления вывода

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