455 Stimmen

Mehrere Befehle mit xargs ausführen

cat a.txt | xargs -I % echo %

Im obigen Beispiel, xargs nimmt echo % als Befehlsargument. Aber in manchen Fällen brauche ich mehrere Befehle, um das Argument zu verarbeiten, statt nur einen. Zum Beispiel:

cat a.txt | xargs -I % {command1; command2; ... }

Aber xargs akzeptiert dieses Formular nicht. Eine Lösung, die ich kenne, ist, dass ich eine Funktion definieren kann, um die Befehle zu verpacken, aber das möchte ich vermeiden, weil es komplex ist. Gibt es eine bessere Lösung?

1voto

Coco Punkte 1

Ich habe eine gute Idee, um das Problem zu lösen. Schreiben Sie nur einen Komman mcmd dann können Sie Folgendes tun

find . -type f | xargs -i mcmd echo {} @@ cat {} @pipe sed -n '1,3p'

Le site mcmd Inhalt wie folgt:

echo $* | sed -e 's/@@/\n/g' -e 's/@pipe/|/g' | csh

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X