Jeśli uruchomię polecenie cat file | grep pattern
, otrzymam wiele wierszy danych wyjściowych. Jak połączyć wszystkie wiersze w jeden wiersz, skutecznie zastępując każdy "\n"
z "\" "
(koniec ze "
spacją)?
cat file | grep pattern | xargs sed s/\n/ /g
nie działa dla mnie.
sed
skrypt w apostrofach, aby Bash z nim nie zadzierał (ponieważsed s/\n/ /g
wywołaniased
z dwoma argumentami, mianowicies/n/
i/g
); (2) Ponieważ chcesz wyjściecat file | grep pattern
za wejście dosed
, a nie argumenty dosed
, trzeba wyeliminowaćxargs
; i (3) nie ma takiej potrzebycat
, ponieważgrep
może przyjąć nazwę pliku jako drugi argument. Więc powinieneś był spróbowaćgrep pattern file | sed 's/\n/ /g'
. (W tym przypadku to by nie zadziałało, z powodów podanych w powyższym linku, ale teraz wiesz na przyszłość.)