终端管道误解

终端管道误解

各位朋友,我对这个命令有几个疑问:

 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 模式执行 cat 操作,但它看起来很混乱,尤其是与其他管道一起使用时,而且 XPath 什么也没有做(再次强调,它通常用于 xml、html 等文件)。

我对sed命令基本上还不熟悉,有人可以解释一下这是什么意思吗sed '1 d;$ d;/^ -------$/ d'

谢谢。

相关内容