У меня есть набор файлов, к которым я хотел бы применить ту же команду, и вывод должен содержать то же имя, что и обработанный файл, но с другим расширением.
В настоящее время я делаю переименование /my/data/Andrew.doc в /my/data/Andrew.txt. Я хотел бы сделать это для всех файлов .doc из папки / my / data / и сохранить имя.
Я пробовал несколько версий, но я думаю, что у меня что-то не так в синтаксисе, так как я новичок в Linux.
command-line
bash
Роберт
источник
источник
Ответы:
Есть по крайней мере сто тысяч миллионов различных подходов к этому, но вот главные претенденты:
Баш за петлю
С помощью
find
У
find
команды есть прекрасная маленькаяexec
команда, которая отлично подходит для запуска вещей (с некоторыми оговорками). Найти лучше, чем обычные операции с глобализацией, потому что вы действительно можете отфильтровать выбранные вами файлы. Будьте осторожны с нечетным синтаксисом.Обратите внимание, что
find
это рекурсивно, поэтому вы можете использовать его-maxdepth 1
для сохраненияfind
в текущем рабочем каталоге.-type f
может быть использован для фильтрации обычных файлов.Если мы просто переименовываем документ в txt ...
rename
Команда SED-как в поиске. Очевидно, что это ничего не сделает для преобразования формата.источник
источник