Wenn ich den Befehl ausführe cat file | grep pattern
, erhalte ich viele Ausgabezeilen. Wie verketten Sie alle Zeilen in einer Zeile, effektiv jede ersetzt "\n"
mit "\" "
(Ende mit "
durch Leerzeichen)?
cat file | grep pattern | xargs sed s/\n/ /g
arbeitet nicht für mich.
sed
Skript in einfache Anführungszeichen setzen, damit Bash nicht damit herumspielt (dased s/\n/ /g
Aufrufesed
mit zwei Argumenten, nämlichs/n/
und/g
); (2) da Sie möchten, dass die Ausgabe voncat file | grep pattern
die Eingabe vonsed
und nicht die Argumente von istsed
, müssen Sie eliminierenxargs
; und (3) hier besteht keine Notwendigkeitcat
, dagrep
ein Dateiname als zweites Argument verwendet werden kann. Du hättest es also versuchen sollengrep pattern file | sed 's/\n/ /g'
. (In diesem Fall hätte es aus den unter dem obigen Link angegebenen Gründen nicht funktioniert, aber jetzt wissen Sie es für die Zukunft.)