Score:0

วิธีเพิ่มคอลัมน์อื่น

ธง ng

ฉันพยายามเปลี่ยนไฟล์แบบนี้เป็นสิ่งที่อยู่ด้านล่าง ฉันไม่แน่ใจว่าจะใช้ awk หรือ paste เพื่อทำสิ่งนี้ได้อย่างไร

0.0000000000  0.0000000000  0.0000000000 
0.7804643317  0.5703578412   0.0000000000 
-0.7804643317  0.5703578412   0.0000000000 

ฉันจะจัดการกับจำนวนแถวที่เปลี่ยนแปลงสำหรับไฟล์ที่ฉันพยายามแปลง

0.0000000000 0  0.0000000000 0  0.0000000000 0
0.7804643317 0  0.5703578412 0  0.0000000000 0
-0.7804643317 0  0.5703578412 0  0.0000000000 0
cn flag
Ray
ฉันคิดว่าคุณหมายถึง "จำนวนแถวจะอยู่ที่สาม แต่จำนวนคอลัมน์จะเปลี่ยนไป"
Score:4
ธง in

ฉันจะใช้ เสด:

sed -i -E 's/([^ ]+)/\1 0/g' ไฟล์

หรือถ้าไฟล์นั้นคั่นด้วยแท็บ:

sed -i -E 's/([^\t]+)/\1\t0/g' ไฟล์
  • -ผม แก้ไขไฟล์แทนที่
  • s/รูปแบบ/การแทนที่/ หมายถึงรูปแบบการแทนที่ด้วยสตริงการแทนที่

หรือ อึดอัด

awk -i แทนที่ไฟล์ '{for (f=1;f<=NF; f++){$f=$f" 0"}}1'

หรือ

awk -i แทนที่ไฟล์ '{for (f=1;f<=NF; f++){$f=$f"\t0"}}1'

อย่างไรก็ตาม การใช้งานส่วนใหญ่ไม่รองรับ - ฉันเข้าแทนที่. จากนั้น คุณต้องเขียนผลลัพธ์ของคุณไปยังไฟล์ temp และเขียนทับไฟล์ต้นฉบับด้วย:

awk '{สำหรับ (f=1;f<=NF; f++){$f=$f" 0"}}1' ไฟล์ > file.tmp && ไฟล์ mv file.tmp
Score:2
ธง cn

วิธีการ Perl:

$ perl -ane 'พิมพ์ "$_ 0" สำหรับ @F; พิมพ์ไฟล์ "\n"'
0.0000000000 0 0.0000000000 0 0.0000000000 0 
0.7804643317 0 0.5703578412 0 0.0000000000 0 
-0.7804643317 0 0.5703578412 0 0.0000000000 0 

หรือแก้ไขไฟล์ต้นฉบับ:

perl -i -ane 'พิมพ์ "$_ 0" สำหรับ @F; พิมพ์ไฟล์ "\n"'
Score:0
ธง mm

เพิ่มความช่วยเหลือจาก: https://unix.stackexchange.com/questions/11801/replace-all-white-spaces-with-commas-in-a-text-file

$ cat text.file | sed 's/[[:blank:]]\+/\ 0\ /g'

 0.0000000000 0 0.0000000000 0 0.0000000000 0
 0.7804643317 0 0.5703578412 0 0.0000000000 0
 -0.7804643317 0 0.5703578412 0 0.0000000000 0

หรือเสริมสวยด้วยคอลัมน์:

$ cat text.file | sed 's/[[:blank:]]\+/\ 0\ /g' | คอลัมน์ -t -e

 0.0000000000 0 0.0000000000 0 0.0000000000 0 
 0.7804643317 0 0.5703578412 0 0.0000000000 0
 -0.7804643317 0 0.5703578412 0 0.0000000000 0

ระวังบัญชีนี้สำหรับช่องว่างที่ส่วนท้ายของสตริง อาจต้องการกรองด้วย sed ก่อนหน้า

 $ cat text.file | sed 's/[[:blank:]]\+$//g' | sed 's/[[:blank:]]\+/\ 0\ /g' | คอลัมน์ -t -e

 0.0000000000 0 0.0000000000 0 0.0000000000 
 0.7804643317 0 0.5703578412 0 0.0000000000
 -0.7804643317 0 0.5703578412 0 0.0000000000
terdon avatar
cn flag
โปรดทราบว่าคุณไม่จำเป็นต้องมีแมวที่นั่น คุณสามารถให้ไฟล์ sed เป็นอาร์กิวเมนต์ คุณไม่จำเป็นต้องหลบหนีจากช่องว่าง
bac0n avatar
cn flag
คุณอาจต้องการใช้บางอย่างเช่น `[[: blank:]]\+\|$` (แม้ว่าจะมีช่องว่างที่ส่วนท้ายของตัวอย่าง แต่การขึ้นบรรทัดใหม่น่าจะเป็นเรื่องปกติมากกว่า)

โพสต์คำตอบ

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