Как указать размеры файлов и папок, отсортированных и в МБ, ГБ вместо длинного целого числа? [дубликат]

Пара вещей:

Если я вас правильно понимаю, вы хотели бы уменьшить расширение всех имен файлов *. 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 , чтобы избежать проблем с именами файлов, начинающимися с - .

1
22.04.2015, 00:45
0 ответов

Теги

Похожие вопросы