ค้นหาเว็บไซต์

แสดงเอาต์พุตคำสั่งหรือเนื้อหาไฟล์ในรูปแบบคอลัมน์


คุณเบื่อกับการดูเอาต์พุตคำสั่งที่แออัดหรือเนื้อหาไฟล์บนเทอร์มินัลหรือไม่ บทความสั้นๆ นี้จะสาธิตวิธีการแสดงเอาต์พุตคำสั่งหรือเนื้อหาไฟล์ในรูปแบบ “เรียงตามคอลัมน์ ” ที่ชัดเจนมาก

เราสามารถใช้ยูทิลิตี คอลัมน์ เพื่อแปลงอินพุตมาตรฐานหรือเนื้อหาไฟล์เป็นรูปแบบตารางที่มีหลายคอลัมน์ เพื่อให้ได้ผลลัพธ์ที่ชัดเจน

อ่านเพิ่มเติม: 12 คำสั่งที่มีประโยชน์สำหรับการกรองข้อความเพื่อการทำงานของไฟล์อย่างมีประสิทธิภาพใน Linux

เพื่อให้เข้าใจได้ชัดเจนยิ่งขึ้น เราได้สร้างไฟล์ต่อไปนี้ “tecmint-authors.txt” ซึ่งประกอบด้วยรายชื่อผู้เขียน 10 อันดับแรก จำนวนบทความที่เขียน และจำนวนความคิดเห็นที่พวกเขาได้รับเกี่ยวกับบทความจนถึงขณะนี้ .

เพื่อสาธิตสิ่งนี้ ให้รันคำสั่ง cat ด้านล่างเพื่อดูไฟล์ tecmint-authors.txt

cat tecmint-authors.txt
ผลลัพธ์ตัวอย่าง
pos|author|articles|comments
1|ravisaive|431|9785
2|aaronkili|369|7894
3|avishek|194|2349
4|cezarmatei|172|3256
5|gacanepa|165|2378
6|marintodorov|44|144
7|babin lonston|40|457
8|hannyhelal|30|367
9|gunjit kher|20|156
10|jesseafolabi|12|89

เมื่อใช้ คำสั่งคอลัมน์ เราสามารถแสดงผลลัพธ์ที่ชัดเจนได้ดังต่อไปนี้ โดยที่ -t ช่วยในการกำหนดจำนวนคอลัมน์ที่อินพุตมี และสร้างตารางและ -s ระบุอักขระตัวคั่น

cat tecmint-authors.txt  | column -t -s "|"
ผลลัพธ์ตัวอย่าง
pos  author         articles  comments
1    ravisaive      431       9785
2    aaronkili      369       7894
3    avishek        194       2349
4    cezarmatei     172       3256
5    gacanepa       165       2378
6    marintodorov   44        144
7    babin lonston  40        457
8    hannyhelal     30        367
9    gunjit kher    20        156
10   jesseafolabi   12        89

ตามค่าเริ่มต้น แถว จะถูกเติมก่อนคอลัมน์ หากต้องการเติมคอลัมน์ก่อนเติมแถว ให้ใช้สวิตช์ -x และเพื่อสั่งคำสั่งคอลัมน์ ให้พิจารณาบรรทัดว่าง (ซึ่งจะถูกละเว้นโดยค่าเริ่มต้น) รวมค่าสถานะ -e

นี่เป็นอีกตัวอย่างที่ใช้งานได้จริง รันสองคำสั่งด้านล่างและดูความแตกต่างเพื่อทำความเข้าใจเพิ่มเติมว่าคอลัมน์เวทย์มนตร์สามารถทำได้

mount
mount | column -t
ผลลัพธ์ตัวอย่าง
sysfs        on  /sys                             type  sysfs            (rw,nosuid,nodev,noexec,relatime)
proc         on  /proc                            type  proc             (rw,nosuid,nodev,noexec,relatime)
udev         on  /dev                             type  devtmpfs         (rw,nosuid,relatime,size=4013172k,nr_inodes=1003293,mode=755)
devpts       on  /dev/pts                         type  devpts           (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs        on  /run                             type  tmpfs            (rw,nosuid,noexec,relatime,size=806904k,mode=755)
/dev/sda10   on  /                                type  ext4             (rw,relatime,errors=remount-ro,data=ordered)
securityfs   on  /sys/kernel/security             type  securityfs       (rw,nosuid,nodev,noexec,relatime)
tmpfs        on  /dev/shm                         type  tmpfs            (rw,nosuid,nodev)
tmpfs        on  /run/lock                        type  tmpfs            (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs        on  /sys/fs/cgroup                   type  tmpfs            (rw,mode=755)
cgroup       on  /sys/fs/cgroup/systemd           type  cgroup           (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/
....

หากต้องการบันทึกเอาต์พุตที่มีรูปแบบสวยงามในไฟล์ ให้ใช้การเปลี่ยนเส้นทางเอาต์พุตตามที่แสดง

mount | column -t >mount.out

สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้าคู่มือคอลัมน์:

man column 

คุณอาจต้องการอ่านบทความที่เกี่ยวข้องต่อไปนี้

  1. วิธีใช้ Awk และนิพจน์ทั่วไปเพื่อกรองข้อความหรือสตริงในไฟล์
  2. วิธีค้นหาและจัดเรียงไฟล์ตามวันที่และเวลาที่แก้ไขใน Linux
  3. 11 คำสั่ง Linux ขั้นสูง 'Grep' ในคลาสอักขระและนิพจน์วงเล็บ

หากคุณมีคำถามใด ๆ ใช้แบบฟอร์มความคิดเห็นด้านล่างเพื่อเขียนถึงเรา คุณสามารถแบ่งปันเคล็ดลับและเทคนิคบรรทัดคำสั่งที่เป็นประโยชน์ใน Linux ให้เราได้เช่นกัน