Пара вещей:
ls
. sudo
? Почему? Если я вас правильно понимаю, вы хотели бы уменьшить расширение всех имен файлов *. DOC
в нижнем регистре и использовать catdoc
для создания их текстовых файлов.
shopt -s nullglob
for doc in ./*.DOC; do
new_doc="${doc%.DOC}.doc"
txt_doc="${doc%.DOC}.txt"
catdoc "$doc" >"$txt_doc"
mv "$doc" "$new_doc"
done
Или даже короче:
shopt -s nullglob
for doc in ./*.DOC; do
catdoc "$doc" >"${doc%.DOC}.txt"
mv "$doc" "${doc%.DOC}.doc"
done
$ {doc% .DOC}
использует $ {параметр% word}
расширение параметра bash
( или любую оболочку POSIX), чтобы удалить суффикс .DOC
из имени файла в $ doc
. nullglob
гарантирует, что ничто не будет соответствовать *. DOC
, если нет файлов с суффиксом .DOC
. Если не установлен, я бы получил строку *. DOC
в $ doc
, если бы не было файлов .DOC
. ./
в ./*. DOC
, чтобы избежать проблем с именами файлов, начинающимися с -
.