Ну, я уже написал скрипт, который в основном принимает файл XML в качестве входных данных и извлекает текст для определенных тегов XML, и он работает Но он недостаточно умен, чтобы получать многострочный текст, а также разрешать использование специальных символов. Очень важно, чтобы текстовый формат оставался неизменным, как это определено в тегах.
Ниже приведен ввод XML:
<nick>Deminem</nick>
<company>XYZ Solutions</company>
<description>
/**
*
* «Lorem» ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
* tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
* At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
* no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
* consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
* magna aliquyam erat, sed diam voluptua.
*
**/
</description>
Приведенный выше скрипт извлекает текст каждого конкретного тега и присваивает новый valueArray. Моя команда над sed проста, но всегда готова пройти лишнюю милю.
tagsArray=( nick company description )
noOfElements=${#tagsArray[@]}
for (( i=0;i<$noOfElements;i++)); do
OUT=`grep ${tagsArray[${i}]} filename.xml | tr -d '\t' | sed -e 's/^<.*>\([^<].*\)<.*>$/\1/' `
valueArray[${i}]=${OUT}
done