
Друзья, у меня есть несколько вопросов по этой команде:
echo 'cat //item/*[local-name()="id"]/text()' | xmllint --shell test.xml | sed '1 d;$ d;/^ -------$/ d' | sort | uniq --repeated
Я думал, что конвейеризация команд работает слева направо. Я сбит с толку тем, что cat
команда используется ни на чем ( cat
команда, которую я видел, обычно используется с примером файла, cat test.xml
).
Кроме того, я не совсем уверен, что cat //item/*[local-name()="id"]/text()
делает, может кто-нибудь объяснить? Я знаю, что это в основном делает cat против шаблона XPath, но это выглядит запутанным, особенно с другими каналами, и XPath не работает ни против чего (опять же, он обычно используется с файлами, такими как xml, html и т. д.).
Я вообще-то новичок в sed
командовании, может кто-нибудь объяснить, что это значит sed '1 d;$ d;/^ -------$/ d'
?
Спасибо.