Команда xmlstarlet для пакетной обработки файлов.xhtml

Мне никогда не приходилось добавлять эти export...строки в .bashrcза последние 2+ месяца в Linux. Для libreoffice -все же я должен добавить эти две строки:

export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

в ~/.bashrcи для каллигры я должен добавить все три:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

в ~/.bashrcна KDE Plasma Desktop.

0
03.10.2021, 11:27
1 ответ

Приведенный ниже код представляет собой лишь слегка измененный вариант конца моего ответа на ваш предыдущий вопрос по той же теме, в котором используются идентичные способы фактической пакетной обработки.

Если все файлы, которые вы хотите обработать, соответствуют шаблону ./*.xhtml, т. е. если они имеют суффикс имени файла .xhtmlи находятся в текущем каталоге, вы сможете обработать все эти файлы с помощью любого из приведенные выше команды, используя простой цикл оболочки.

for name in./*.xhtml; do
        xmlstarlet fo --omit-decl --recover --html "$name" >"$name".new
done

Команда в цикле выводит результирующий документ в файлы с тем же именем, что и у старых файлов, но с добавленным суффиксом имени файла .new.

Чтобы запустить описанное выше для всех файлов XHTML в иерархии каталогов, то есть в каталоге с несколькими подкаталогами, вы можете использовать find.

find. -type f -name '*.xhtml' -exec sh -c '
        for name do
                xmlstarlet fo --omit-decl --recover --html "$name" >"$name".new
        done' sh {} +
1
03.10.2021, 13:25

Теги

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