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.
sedskrypt w apostrofach, aby Bash z nim nie zadzierał (ponieważsed s/\n/ /gwywołaniasedz dwoma argumentami, mianowicies/n/i/g); (2) Ponieważ chcesz wyjściecat file | grep patternza wejście dosed, a nie argumenty dosed, trzeba wyeliminowaćxargs; i (3) nie ma takiej potrzebycat, ponieważgrepmoż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ść.)