Как изменить текст во всех файлах OpenOffice.org Writer в текущем каталоге (текст основного содержания)

bsro3 () { P=`pwd`; S=$1; R=$2; ls *.odt > /dev/null 2>&1; if [[ $? -ne 0 ]]; then exit 1; fi; for i in *.odt; do mkdir ${P}/T; cd ${P}/T; unzip -qq "$P"/"$i"; sed -i "s/$S/$R/" ${P}/T/content.xml; zip -qq -r "$P"/"$i" *; cd ${P}; rm -rf ${P}/T; done; }


Эта команда определяет функцию bsro3, которая выполняет следующие действия:

1. Сохраняет текущий каталог в переменной P.
2. Задает текст для поиска в переменной S и текст для замены в переменной R.
3. Проверяет наличие файлов с расширением .odt в текущем каталоге. Если их нет, завершает выполнение с ошибкой.
4. Для каждого файла .odt в текущем каталоге:
— Создает временную директорию T.
— Распаковывает содержимое .odt файла в директорию T.
— Заменяет текст $S на $R в файле content.xml.
— Упаковывает измененное содержимое обратно в исходный .odt файл.
— Удаляет временную директорию T.
5. Все файлы .odt в текущем каталоге будут обновлены с заменой текста $S на $R.

Полезность: Используется для массовой замены текста в файлах формата OpenOffice.org Writer (.odt) в текущем каталоге.

Альтернативы: Можно использовать инструменты для пакетной замены текста, такие как sed или скрипты на Python, для достижения того же результата без создания временных директорий и архивов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *