在Linux中以列格式显示命令输出或文件内容

有时,一个文件中可能塞满了太多列。这使得很难读取文件的内容并指出哪些数据属于哪一列。为了获得更好的视图,我们可以使用某些命令,这些命令将在各列之间分配空间,并标记一些分隔符,以便清楚地看到该列的开头和结尾。

样本文件

让我们看下面的示例文件,我们将用它来演示column命令。我们可以从kaggle获取文件。这里。

$ cat iris.data

运行上面的代码给我们以下结果-

Id,SepalLengthCm,SepalWidthCm,PetalLengthCm,PetalWidthCm,Species
1,5.1,3.5,1.4,0.2,Iris-setosa
2,4.9,3.0,1.4,0.2,Iris-setosa
3,4.7,3.2,1.3,0.2,Iris-setosa
4,4.6,3.1,1.5,0.2,Iris-setosa
5,5.0,3.6,1.4,0.2,Iris-setosa
6,5.4,3.9,1.7,0.4,Iris-setosa
7,4.6,3.4,1.4,0.3,Iris-setosa
……………
………….

应用column命令

column命令使列的布局非常清晰。它使用–t和–s开关。-t帮助确定输入包含的列数并创建一个表,而-s指定分隔符。

$ cat iris.data | column -t -s ","

运行上面的代码给我们以下结果-

SepalLengthCm       SepalWidthCm       PetalLengthCm       PetalWidthCm       Species
5.1                   3.5                1.4                   0.2          Iris-setosa
4.9                   3.0                1.4                   0.2          Iris-setosa
4.7                   3.2                1.3                   0.2          Iris-setosa
4.6                   3.1                1.5                   0.2          Iris-setosa
5.0                   3.6                1.4                   0.2          Iris-setosa
5.4                   3.9                1.7                   0.4          Iris-setosa
4.6                   3.4                1.4                   0.3          Iris-setosa
5.0                   3.4                1.5                   0.2          Iris-setosa
4.4                   2.9                1.4                   0.2          Iris-setosa
4.9                   3.1                1.5                   0.1          Iris-setosa
5.4                   3.7                1.5                   0.2          Iris-setosa
4.8                   3.4                1.6                   0.2          Iris-setosa
4.8                   3.0                1.4                   0.1          Iris-setosa

挂载命令

另一个示例是mount命令,它是Unix管理员最常使用的命令。原始结果不清楚,但是我们可以将其设置为柱状且格式正确。

$ mount

运行上面的代码给我们以下结果-

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=1977472k,nr_inodes=494368,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=401592k,mode=755)
/dev/sda1 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 (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)

然后我们在命令下面给了他一个格式化的输出。

$ mount | column –t

接下来,我们使用mount命令运行它。

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=1977472k,nr_inodes=494368,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=401592k,mode=755)
/dev/sda1       on /             type    ext4 
(rw,relatime,errors=remount-ro,data=ordered)