Как выполнить команду для нескольких файлов и перенаправить вывод в другой файл в зависимости от имени входного файла
Я пытаюсь конвертировать пакет латексных файлов с помощью 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 ответ
Решение
Ответ на аналогичный вопрос будет применяться и здесь. Итак, вот ссылка:
Пакетная команда, требующая перенаправления вывода