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

Я могу подтвердить, что LibreOffice правильно открывает документы Office 2007 (docx) И сохраняет их правильно. Я тестировал до сих пор чуть более 50 документов, которые включают в себя таблицы, рисунки, множество разных полей, абзацы и т. Д.

Они открывают, читают и сохраняют правильно. Протестировано с LibreOffice 3.3.2 и OpenOffice 3.3.0. С OpenOffice у вас будет проблема, что текст будет перемещаться вверх или вниз и, возможно, даже изменить то, как они выглядят.

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

Для установки последнего LibreOffice используйте следующее:

Как установить LibreOffice? (замена OpenOffice.org)

ПРИМЕЧАНИЕ. Когда вы добавите PPA LibreOffice, появится возможность удалить OpenOffice. Я рекомендую вам удалить его, так как, поверьте мне, это будет намного лучше.

1
задан 28 April 2015 в 00:40

1 ответ

Решение bash, которое удаляет расширение, заменяет периоды символами подчеркивания, затем добавляет обратно расширение:

for f in *.png; do g="${f%.*}"; echo mv -- "$f" "${g//./_}.png"; done

Удалите echo, как только вы убедитесь, что он работает. Его можно было бы довольно легко распространить на общее расширение .ext, если у вас более одного типа файла, например

for f in *.*; do g="${f%.*}"; e="${f##*.}"; echo mv -- "$f" "${g//./_}.$e"; done
0
ответ дан 23 May 2018 в 20:56
  • 1
    Это лишний комплекс. Просто используйте один /, если вы хотите заменить только первый .: for f in *.png; do; echo mv -- "$f" "${f/./_}"; done. – David Ongaro 28 April 2015 в 01:30
  • 2
    @DavidOngaro I не хочет заменить только первый ., я хочу заменить все, кроме последнего – steeldriver 28 April 2015 в 01:36
  • 3
    Хорошо, но из примера @ user3601754 кажется, что ему это не нужно? Но только он может сказать, что ему на самом деле нужно ... – David Ongaro 28 April 2015 в 02:45

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

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