Не могли бы вы попробовать следующее, я не эксперт xamlstarlet
, чтобы попробовать здесь.
xmlstarlet sel -t -v "classes" Input_file |
awk '
NF{
gsub(/^[[:space:]]+|[[:space:]]+$/,"")
print
}'
Краткое объяснение: Обработка xml файл с xmlstarlet
, затем для форматирования вывода я использую awk
(после обработки xml), который удаляет ненужные пробелы и новые строки из вывода.
РЕДАКТИРОВАТЬ: Так как ОП сказал, что он не может установить xmlstarlet
в систему, поэтому добавление awk
решения, но справедливое предупреждение awk
НЕ является инструментом для xml, добавлено следующее решение, увидев показанные образцы только.
awk -F"[><]" '
/<\/subject>/{
if(found){
print val
}
found=val=""
next
}
/<subject>/{
found=1
next
}
found{
val=(val?val ORS:"")$3
}
' Input_file