Hallole, * Bernd Brodesser textete am 25.06.03:
- Florian Gross schrieb am 24.Jun.2003:
Du machst dir das zu einfach. cat gibt wohl Dateiinhalte aus, aber in deinem Fall weiß das arme cat ja nicht mal, was es machen soll. Du machst dir das etwas zu einfach. So wie du das machen willst, mußt du erst die Dateinamen ermitteln und dann jeden Dateinamen an cat übergeben, also in der Art: find -iname "*.txt" | cat text1 text 2 usw.
Hä?
Schon gesehen, hätte es anders schreiben sollen. s/text/Fundstelle/g Isses dann verständlicher? Ich hab geschrieben "in der Art", ich weiß auch, daß da noch was fehlt.
Das geht natürlich viel eleganter, nur weiß ich nicht, wie man sowas macht. Das wissenaber sicher andere hier. ;-)
Aber ich hoffe, daß du wenigstens erkennst, was dein Denkfehler war. (und daß ich mich halbwegs verständlich ausgedrückt habe)
Nein. ;)
Danke Bernd, genau das hab' ich jetzt noch gebraucht. ;-)
cat gibt die Inhalte von Dateien aus und hängt sie aneinander (conCATernat)
Ja, weiß ich.
Dabei gibt cat einfach die Inhalte der Dateien aus, die im Argument stehen, dabei steht - für die Standardeingabe. Wenn es kein Argument gibt, so wird ebenfalls die Standardeingabe genommen. Ist übrigens ein typisches Verhalten für Linuxbefehle.
In Beispiel des Fragenden sind aber keine Argumente übergeben worden, das wollte ich eigentlich ausdrücken.
Bei Deiner obigen Zeile
find -iname "*.txt" | cat text1 text2
schreibt find zwar was in die pipe rein, aber cat liest nichts aus, sondern gibt den Inhalt von text1 und von text2 aus.
Ok, da hab ich etwas unqualifiziert geschrieben. ;-)
Was Dein Vorredner wollte ist in etwa das, was xargs macht.
Ich war wohl zu müde. Hat wenigstens das bis zu meinem mißglückten Beispiel geschriebene halbwegs seine Richtigkeit? cu flo -- In die Tüt verwexelst du hier wasch! Der Deckel mit dem heissen Wasser ist vom Schmakki und das geht so: Deckel auf, heiss Wasser drauf, in fünf Minuten Dauerlauf. Zur Topilette wie ein jeder weis, denn dann gibt es dünne ... Na du weisst schon was. [WoKo in dag°]