Score:0

แทนที่ลำดับของตัวละครด้วยลำดับอื่น

ธง in

ฉันมีเอาต์พุตจากคำสั่งตรวจสอบเครือข่ายและมีลักษณะดังนี้:

                     391KB 7.48MB 7.86MB

ที่มีช่องว่างมากก่อน. ตอนนี้ฉันต้องการแทนที่ช่องว่างทั้งหมดด้วย ,.
ฉันเหนื่อย sed 's/ /,/g' input_file > เอาต์พุต_ไฟล์แต่ผลลัพธ์ไม่ใช่สิ่งที่ฉันคาดหวัง:

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

ฉันยังพยายาม:

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

แต่ผลลัพธ์เป็นดังนี้:

391KB7.48MB,7.86MB

ฉันจะแทนที่ลำดับของช่องว่างด้วยลูกน้ำหนึ่งตัวได้อย่างไร
ฉันคิดว่าเป็นการดีที่จะกล่าวว่าฉันต้องการเพิ่มข้อมูลนี้ลงในไฟล์ csv

Score:5
ธง hr

คุณสามารถจับคู่ลำดับของช่องว่างตั้งแต่หนึ่งช่องขึ้นไปใน Basic Regular Expressions (BRE) โดยใช้อย่างใดอย่างหนึ่ง * (อวกาศ-อวกาศ-ดาว) หรือ \{1,\}. ใน Extended Regular Expression (ERE) คุณสามารถใช้ {1,} หรือ +. ชื่อทั่วไปสำหรับโครงสร้างเหล่านี้คือ ปริมาณ.

$ echo ' 391KB 7.48MB 7.86MB' | sed 's/ */,/g'
,391KB,7.48MB,7.86MB

$ echo ' 391KB 7.48MB 7.86MB' | sed -r 's/ +/,/g'
,391KB,7.48MB,7.86MB

GNU sed ให้คุณใช้งานได้ หลบหนี \+ ใน BRE (เช่นเดียวกับ \? สำหรับปริมาณ 0 หรือ 1) - เช่นเดียวกับ GNU grep

คุณสามารถใช้ , กับ -s (--บีบซ้ำ) ธง:

$ echo ' 391KB 7.48MB 7.86MB' | tr -s ' ' ,
,391KB,7.48MB,7.86MB

อย่างไรก็ตาม หากคุณไม่ต้องการให้ฟิลด์ CSV เริ่มต้นว่างเปล่า ให้พิจารณาใช้ awk เนื่องจากตัวคั่นฟิลด์เริ่มต้นจะถือว่าช่องว่างที่อยู่ติดกันเป็นตัวคั่นเดียว และละเว้นช่องว่างนำหน้า:

$ echo ' 391KB 7.48MB 7.86MB' | awk '{$1=$1} 1' OFS=,
391KB,7.48MB,7.86MB
Score:0
ธง gi

ใช้ sed

เสียงสะท้อน ' 391KB 7.48MB 7.86MB' | sed -r 's/^ +//g;s/ +/,/g'

คุณจะต้อง

391KB,7.48MB,7.86MB

หรืออีกทางหนึ่ง ถ้าตัวคั่นคือช่องว่างและคุณสามารถรวมช่องว่างหลายช่องได้ คุณสามารถใช้เครื่องหมายใหญ่ได้เช่นกัน มิลเลอร์ ทางนี้

เสียงสะท้อน ' 391KB 7.48MB 7.86MB' | mlr --n2c --ifs ' ' -N --repifs แมว

เพื่อที่จะมี

391KB,7.48MB,7.86MB

เริ่มต้นจากไฟล์

<อินพุต mlr --n2c --ifs ' ' -N --repifs แมว >output.csv

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา