Linux column命令

Source


一. 简介

column命令用于将文本以列对齐的方式格式化输出,通常用于美观展示数据。它非常适合处理以定界符分隔的数据,比如使用空格、制表符或逗号分隔的表格数据。

选项 含义
-t 自动检测并对齐列(默认检测空白字符)
-s <分隔符> 指定字段的分隔符(如 ,: 等)
-x 按行填充而不是按列填充(在多列布局时使用)

二. 文本列对齐

-t:默认检测的是空白字符

apluser@FengYeHong-HP:work$ echo -e "Name Age\nAlice001 25\nBob 30"
Name Age
Alice001 25
Bob 30
apluser@FengYeHong-HP:work$ echo -e "Name Age\nAlice001 25\nBob 30" | column -t
Name      Age
Alice001  25
Bob       30

三. csv文件列对齐显示

  • -s ",":指定csv文件以,进行分割
  • 然后再通过-t自动调整
apluser@FengYeHong-HP:work$ cat sample_data.csv
"Name","Age","City","address"
"Alice","25","Tokyo","1-2-3 Shibuya"
"Bob","30","Osaka","4-5-6 Namba"
"Charlie","22","Kyoto","7-8-9 Gion"
apluser@FengYeHong-HP:work$
apluser@FengYeHong-HP:work$
apluser@FengYeHong-HP:work$ cat sample_data.csv | column -s "," -t
"Name"     "Age"  "City"   "address"
"Alice"    "25"   "Tokyo"  "1-2-3 Shibuya"
"Bob"      "30"   "Osaka"  "4-5-6 Namba"
"Charlie"  "22"   "Kyoto"  "7-8-9 Gion"

四. 文件显示

  • 文件行转列之后,由于文件名长度不同导致数据展示不美观
  • 使用xargs -L配合column -t进行美观展示
apluser@FengYeHong-HP:work$ find /usr/bin/ -executable -type f | head
/usr/bin/pslog
/usr/bin/dpkg-deb
/usr/bin/tabs
/usr/bin/pod2man
/usr/bin/envsubst
/usr/bin/podchecker
/usr/bin/apt-mark
/usr/bin/colcrt
/usr/bin/crontab
/usr/bin/ntfswipe
apluser@FengYeHong-HP:work$ find /usr/bin/ -executable -type f | xargs -L 3 | head
/usr/bin/pslog /usr/bin/dpkg-deb /usr/bin/tabs
/usr/bin/pod2man /usr/bin/envsubst /usr/bin/podchecker
/usr/bin/apt-mark /usr/bin/colcrt /usr/bin/crontab
/usr/bin/ntfswipe /usr/bin/pkaction /usr/bin/id
/usr/bin/run-parts /usr/bin/gpgcompose /usr/bin/gettext
/usr/bin/setleds /usr/bin/xauth /usr/bin/clear
/usr/bin/ckbcomp /usr/bin/vigpg /usr/bin/ntfstruncate
/usr/bin/run-one /usr/bin/x86_64-linux-gnu-dwp /usr/bin/mtr-packet
/usr/bin/wc /usr/bin/dbus-cleanup-sockets /usr/bin/cksum
/usr/bin/pkexec /usr/bin/systemd-sysext /usr/bin/gpgv
xargs: echo: terminated by signal 13
apluser@FengYeHong-HP:work$ find /usr/bin/ -executable -type f | xargs -L 3 | column -t | head
/usr/bin/pslog                               /usr/bin/dpkg-deb                          /usr/bin/tabs
/usr/bin/pod2man                             /usr/bin/envsubst                          /usr/bin/podchecker
/usr/bin/apt-mark                            /usr/bin/colcrt                            /usr/bin/crontab
/usr/bin/ntfswipe                            /usr/bin/pkaction                          /usr/bin/id
/usr/bin/run-parts                           /usr/bin/gpgcompose                        /usr/bin/gettext
/usr/bin/setleds                             /usr/bin/xauth                             /usr/bin/clear
/usr/bin/ckbcomp                             /usr/bin/vigpg                             /usr/bin/ntfstruncate
/usr/bin/run-one                             /usr/bin/x86_64-linux-gnu-dwp              /usr/bin/mtr-packet
/usr/bin/wc                                  /usr/bin/dbus-cleanup-sockets              /usr/bin/cksum
/usr/bin/pkexec                              /usr/bin/systemd-sysext                    /usr/bin/gpgv