При обработке документов XML необходимо использовать утилиту с поддержкой xml. sed
и awk
не предоставляют никаких средств проверки XML. Например, используя xmlstarlet
, вы должны использовать:
xmlstarlet sel -t -v "/Sample/emp/name" Sample.xml
( примечание: имена узлов с xmlstarlet
чувствительны к регистру. Запросите структуру XML для правильного регистра прежде используйте)
, который будет извлекать Raj
в качестве вывода.
Если вы действительно хотите использовать sed
(не рекомендуется), вы можете сделать:
sed 's/^.*<naME>\([^<]*\)<\/name>.*$/\1/gI' Sample.xml
( примечание: вы фактически пропустили привязки '^'
и '$'
, привязывающие начало и конец строки. Это выражение sed
работает, только если XML находится на одной строке, правильная утилита XML не имеет таких ограничений)
Вывод такой же.