
Leute, ich habe ein paar Fragen zu diesem Befehl:
echo 'cat //item/*[local-name()="id"]/text()' | xmllint --shell test.xml | sed '1 d;$ d;/^ -------$/ d' | sort | uniq --repeated
Ich dachte, die Befehlsweiterleitung funktioniert von links nach rechts. Mich verwirrt, dass der cat
Befehl für nichts verwendet wird ( cat
der Befehl, den ich gesehen habe, wird normalerweise mit einem Dateibeispiel verwendet cat test.xml
).
Außerdem bin ich mir nicht ganz sicher, was das cat //item/*[local-name()="id"]/text()
macht. Kann mir das jemand erklären? Ich weiß, dass es im Grunde ein Cat gegen ein XPath-Muster macht, aber es sieht verwirrend aus, insbesondere mit den anderen Pipes, und der XPath geht gegen nichts (noch einmal, es wird normalerweise mit einer Datei wie XML, HTML usw. verwendet).
Ich bin im Grunde neu bei sed
Command, könnte mir auch jemand erklären, was das bedeutet sed '1 d;$ d;/^ -------$/ d'
.
Danke.