Nếu tôi chạy lệnh cat file | grep pattern
, tôi nhận được nhiều dòng đầu ra. Làm thế nào để bạn nối tất cả các dòng vào một dòng, thay thế hiệu quả mỗi "\n"
bằng "\" "
(kết thúc bằng "
theo sau là dấu cách)?Làm thế nào để nối nhiều dòng đầu ra với một dòng?
cat file | grep pattern | xargs sed s/\n/ /g
không hoạt động đối với tôi.
thể trùng lặp của [SED: Làm thế nào tôi có thể thay thế một (\ n) xuống dòng] (http://stackoverflow.com/questions/1251999/sed-how-can-i-replace-a- newline-n) – ruakh
Nhân tiện: (1) bạn cần phải đặt kịch bản 'sed' của bạn trong dấu nháy đơn để Bash không gây rối với nó (vì' sed s/\ n// g' gọi là 'sed' với hai đối số, cụ thể là 's/n /' và '/ g'); (2) vì bạn muốn đầu ra của tập tin 'cat | grep pattern' là đầu vào * thành 'sed', không phải là * đối số * thành' sed', bạn cần loại bỏ 'xargs'; và (3) không cần 'cat' ở đây, vì' grep' có thể lấy tên tập tin làm đối số thứ hai của nó. Vì vậy, bạn nên thử 'grep pattern file | sed 's/\ n// g''. (Trong trường hợp này nó sẽ không có tác dụng, vì những lý do được đưa ra ở liên kết trên, nhưng bây giờ bạn biết cho tương lai.) – ruakh
tương tự như "http://stackoverflow.com/questions/2764051/how-to-join- nhiều dòng-of-file-tên-thành-một-với-tùy-delimiter " –