Điểm:0

Thay thế trình tự của một ký tự bằng một ký tự khác

lá cờ in

Tôi có một đầu ra từ lệnh giám sát mạng và nó trông như thế này:

                     391KB 7,48MB 7,86MB

Mà có rất nhiều không gian đầu tiên. Bây giờ tôi muốn thay thế tất cả các khoảng trắng bằng ,.
tôi đã thử sed 's/ /,/g' input_file > output_file, Nhưng kết quả không chính xác như tôi mong đợi:

,,,,,,,,,,,,,,,,,,,,,391KB,,,,7.48MB,,,,,7.86MB

Tôi thậm chí đã thử:

sed -r 's/(.*) /\1,/; s/ //g' file.txt > output.txt

Nhưng đầu ra như dưới đây:

391KB7.48MB,7.86MB

Làm cách nào để thay thế chuỗi dấu cách bằng một dấu phẩy?
Tôi nghĩ thật tốt khi đề cập rằng tôi muốn thêm dữ liệu này vào tệp csv.

Điểm:5
lá cờ hr

Bạn có thể khớp một chuỗi gồm một hoặc nhiều dấu cách một cách hợp lý trong Biểu thức chính quy cơ bản (BRE) bằng cách sử dụng một trong hai * (không gian-không gian-sao) hoặc \{1,\}. Trong Biểu thức chính quy mở rộng (ERE), bạn có thể sử dụng {1,} hoặc +. Tên chung cho các cấu trúc này là định lượng.

$ tiếng vang ' 391KB 7,48MB 7,86MB' | sed 's/ */,/g'
,391KB,7,48MB,7,86MB

$ tiếng vang ' 391KB 7,48MB 7,86MB' | sed -r 's/ +/,/g'
,391KB,7,48MB,7,86MB

GNU sed cho phép bạn sử dụng trốn thoát \+ trong BRE (cũng như \? cho bộ định lượng 0 hoặc 1) - cũng như GNU grep.

Bạn cũng có thể sử dụng tr, với -S (--ép-lặp lại) lá cờ:

$ tiếng vang ' 391KB 7,48MB 7,86MB' | tr -s ' ' ,
,391KB,7,48MB,7,86MB

Tuy nhiên, nếu bạn không muốn trường CSV ban đầu trống, hãy cân nhắc sử dụng awk - vì với trình phân tách trường mặc định, nó sẽ coi khoảng trắng liền kề là một dấu phân cách duy nhất và bỏ qua khoảng trắng ở đầu:

$ tiếng vang ' 391KB 7,48MB 7,86MB' | awk '{$1=$1} 1' OFS=,
391KB,7,48MB,7,86MB
Điểm:0
lá cờ gi

sử dụng sed

tiếng vang ' 391KB 7,48MB 7,86MB' | sed -r 's/^ +//g;s/ +/,/g'

bạn sẽ có

391KB,7,48MB,7,86MB

Hoặc cách khác, nếu dấu phân cách là khoảng trắng và bạn có thể hợp nhất nhiều khoảng trắng, bạn cũng có thể sử dụng công cụ tuyệt vời cối xay theo cách này

tiếng vang ' 391KB 7,48MB 7,86MB' | mlr --n2c --ifs ' ' -N --repifs con mèo

391KB,7,48MB,7,86MB

Bắt đầu từ một tập tin

<input mlr --n2c --ifs ' ' -N --repifs cat >output.csv

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.