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.
sedSkript in einfache Anführungszeichen setzen, damit Bash nicht damit herumspielt (dased s/\n/ /gAufrufesedmit zwei Argumenten, nämlichs/n/und/g); (2) da Sie möchten, dass die Ausgabe voncat file | grep patterndie Eingabe vonsedund nicht die Argumente von istsed, müssen Sie eliminierenxargs; und (3) hier besteht keine Notwendigkeitcat, dagrepein 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.)