Malentendido de tuberías terminales

Malentendido de tuberías terminales

Amigos, tengo algunas preguntas sobre este comando:

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

Pensé que la tubería de comando funciona de izquierda a derecha. Estoy confundido acerca de que el catcomando se usa en nada ( catel comando que he visto generalmente se usa con un archivo de ejemplo cat test.xml).

Además, no estoy del todo seguro de qué cat //item/*[local-name()="id"]/text()está haciendo, ¿alguien podría explicarlo? Sé que básicamente se trata de hacer un gato contra un patrón XPath, pero parece confuso, especialmente con las otras tuberías, y XPath no va contra nada (nuevamente, normalmente se usa con un archivo como xml, html, etc.).

Soy básicamente nuevo en sedel mando, ¿alguien podría explicarme también qué significa esto sed '1 d;$ d;/^ -------$/ d'?

Gracias.

información relacionada