Ребята, у меня есть несколько вопросов по этой команде:
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()
делает, может кто-нибудь объяснить? Я знаю, что он в основном делает кошку против шаблона XPath, но это выглядит сбивающим с толку, особенно с другими каналами, а XPath ни с чем не идет (опять же, он обычно используется с такими файлами, как xml, html и т. Д.).
Я в основном новичок в sed
команда, может ли кто-нибудь также объяснить, что это означает sed '1 d;$ d;/^ -------$/ d'
.
Спасибо.