Как кэшировать файл с помощью источника

Синтаксические анализаторы/процессоры XML — это правильные инструменты для манипулирования XML-данными.

xmlstarletрешение:

примерное input.xmlсодержание:


some text
text 1
some text
text 2
some text 

xmlstarlet ed -a '//title' -t elem -n 'description' -v '' input.xml \
 | xmlstarlet ed -u '//description' -x './preceding-sibling::title[1]/text()'

Выход:



some text
text 1text 1
some text
text 2text 2
some text 

  • ed-режим редактирования

  • -a-добавить действие

  • -u-действие обновления

-2
16.09.2019, 00:55
1 ответ

То, что вам нужно, называется «включить охрану». Вы можете увидеть пример SO Джонатана Леффлера в https://stackoverflow.com/a/7518684/6512983.

if [ -z "$B_SH_INCLUDED" ]
then
    B_SH_INCLUDED=yes
   ...rest of original contents of b.sh
fi

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

1
28.01.2020, 05:16

Теги

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