wie die Verwendung mit xargs sed im Suchmuster
Ich die Ausgabe eines Befehls als Suchmuster bei sed. Ich mache ein Beispiel mit echo, aber davon ausgehen kann, dass ein komplizierter Befehl:
echo "some pattern" | xargs sed -i 's/{}/replacement/g' file.txt
Dieser Befehl funktioniert nicht, da "ein Muster" hat ein Leerzeichen, aber ich denke, die verdeutlichen mein problem.
Wie kann ich machen, dass der Befehl funktioniert?
Vielen Dank im Voraus,
InformationsquelleAutor Neuquino | 2013-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie das Kommando-substitution statt, so dass Ihr Beispiel würde wie folgt Aussehen:
Doppelte Anführungszeichen erlauben die Kommando-substitution zur Verhinderung Bereiche aufgeteilt wird.
InformationsquelleAutor Steve
Müssen Sie sagen, xargs, was zu ersetzen, die mit der -I Option - es scheint nicht zu wissen, über die {} automatisch, zumindest in einigen Versionen.
InformationsquelleAutor Weetu
diese funktioniert unter Linux(getestet):
InformationsquelleAutor alex
Könnte dies für Sie arbeiten (GNU sed):
Im wesentlichen drehen Sie den
some pattern
in eine sed-Ersetzung Befehl und führen Sie es über eine pipe zu einem anderen sed-Aufruf. Der Letzte sed-Aufruf verwendet die-f
wechseln, die akzeptiert, dass die sed-Befehle über eine Datei, wird die Datei in diesem Fall wird die standard-Eingabe-
.Wenn Sie die bash benutzen, die
here-string
eingesetzt werden können:N. B. die sed-Separatoren
|
und/
sollte nicht ein Teil seinsome pattern
sonst die regexp wird nicht richtig gebildet.InformationsquelleAutor potong