Mal-entendido na tubulação do terminal

Mal-entendido na tubulação do terminal

Pessoal, tenho algumas dúvidas sobre esse comando:

 echo 'cat //item/*[local-name()="id"]/text()' | xmllint --shell test.xml | sed '1 d;$ d;/^ -------$/ d' | sort | uniq --repeated

Achei que a tubulação de comando funcionava da esquerda para a direita. Estou confuso sobre o catcomando ser usado em nada ( cato comando que vi geralmente é usado com um exemplo de arquivo cat test.xml).

Além disso, não tenho certeza do que cat //item/*[local-name()="id"]/text()está acontecendo, alguém poderia explicar? Eu sei que é basicamente fazer um gato contra um padrão XPath, mas parece confuso, especialmente com os outros pipes e o XPath não vai contra nada (novamente, normalmente é usado com um arquivo como xml, html, etc).

Sou basicamente novo no sedcomando, alguém poderia também explicar o que isso significa sed '1 d;$ d;/^ -------$/ d'.

Obrigado.

informação relacionada