xmllint xpath не печатать ошибку на пустом наборе

Я использую xmllint в скрипте bash для выполнения xpath для некоторых данных. Xpath не всегда будет соответствовать данным, и это нормально. Из документации xmlint:

--xpath "XPath_expression"
       Run an XPath expression given as argument and print the result. In case of a nodeset result, each node in the node set is serialized in full in the output. In case of an empty node set the "XPath set is
       empty" result will be shown and an error exit code will be returned.

Есть ли способ отключить/скрыть вывод XPath set is empty, когда xmlint не находит совпадений?


person Josh    schedule 22.05.2014    source источник
comment
Вы подтвердили, что сообщение об ошибке записывается в stderr? Вы можете отбросить все сообщения об ошибках с помощью xmllint ... 2>/dev/null или объединить выходные данные (теряя различие между stdout и stderr), например xlmlint ... 2>&1 | egrep -v 'XPath set is empty|possibly other msgs you don_t care about' Удачи.   -  person shellter    schedule 22.05.2014


Ответы (1)


Сообщение отправляется на стандартное устройство ошибки. Вы можете перенаправить его на /dev/null.

Пример:

# Shows the message
xmllint --xpath '//a' <(echo "<data/>")

# Redirects the message. Message disappears
xmllint --xpath '//a' <(echo "<data/>") 2>/dev/null
person hek2mgl    schedule 22.05.2014