PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell-script für spezielle problem gesucht



pi-cubiq
27-02-2004, 14:02
hallo,
ich hab ein sehr spezifisches problem und wollte die erfahrenden shell-coder zu rate ziehen:
ich habe einen bestimmtes output mit mehreren wörtern (pro zeile), z.b.:
<edit>nicht pro zeile, sorry, das war absolut sinnlos. natürlich nur ein wort pro zeile :rolleyes: </edit>

----------
test
hello
word
foo
bar
-----------

jetzt möchte ich mit einem weiteren command dieses obige output als argument aufrufen, so:
------------
command test [parameter 2]
command hello [parameter 2]
command world [parameter 2]
command foo [parameter 2]
command bar [parameter 2]
--------------

wie kann ich sowas realisieren?

gruß,

pi

peschmae
27-02-2004, 14:58
Ich verstehs nicht ganz. Du schreibst was von mehreren Wörtern pro Linie, aber da ist jeweils nur eines :eek:

So wie ich das verstehe gehts mit einer ganz normalen foreach-Schleife:


for f in $(cat file_with_output); do
command $f argument2
done


Aber ich versteh da wohl was falsch. Dazu braucht es nämlich keinen erfahrenen Shell-Coder :p

MfG Peschmä

pi-cubiq
27-02-2004, 16:39
danke, klappt einwandfrei :)

eine frage noch: wie schaffe ich es, dass die ersten 3 zeilen des outputs (test, hello, world) rausgeschnitten werden und nur noch auf foo und bar der command ausgeführt wird? irgendwohin müsste ich das output doch noch pipen können....ich weiß nur nicht wohin :cool:

Badsteve
27-02-2004, 16:44
cat durch "tail -n 2" ersetzen.

Steve

pi-cubiq
27-02-2004, 16:55
gut, in diesem fall klappt das so, aber die liste ist eigentlich noch länger. von daher soll alles außer den ersten 3 zeilen ausgegeben werden, nicht einfach nur die letzten beiden zeilen. das hätte ich vielleicht dazu sagen sollen, mein fehler.

Badsteve
27-02-2004, 17:16
awk '{if( FNR > 2) {print $1}}' file


so gehts. Geht glaub ich auch mit cut, hat ich aber gerade nich hinbekommen.

Steve

pi-cubiq
27-02-2004, 18:36
jo, das wars, läuft jetzt genauso wie ichs mir vorgestellt habe!

dangschön!

fork
27-02-2004, 19:24
Der tail Befehl würde heissen:
tail +3 oder tail -n +3