วิธีการเรนเดอร์สองคอลัมน์เพื่อรักษาช่องว่างทั้งหมดหลังจากคอลัมน์แรกด้วย awk หรือทางเลือก?


1

ผลลัพธ์ของฉันมาในรูปแบบที่มนุษย์อ่านได้ด้วยช่องว่างหนึ่งช่องแล้วตามด้วยชื่อไดเรกทอรี:

ฉันกำลังใช้ ...

awk '{ printf "%-20s %-40s\n", $1, $2 }'

อินพุต

1G foo
1.5M foo baz 
5K foo spaces in this directory

เอาท์พุต

1G    foo
1.5M  foo 
5K    foo 

ต้องการ

1G    foo
1.5M  foo baz 
5K    foo spaces in this directory

วิธีการแบ่งออกเป็นสองคอลัมน์ด้วยตัวคั่นช่องว่างการรักษาช่องว่างทั้งหมดในคอลัมน์ที่สองโดยใช้ awk หรือทางเลือก?

คำตอบ:


1

ลองสิ่งนี้:

$ awk '{ printf "%-20s ", $1; $1=""; print $0 }' input 
1G                    foo
1.5M                  foo baz
5K                    foo spaces in this directory

การรีเซ็ตคอลัมน์นำไปสู่สตริงว่างเปล่าเป็นกลอุบายทั่วไปในการพิมพ์ฟิลด์ / คอลัมน์ที่เหลือทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.