Linux 中 column 命令的多种用法


如果您是 Linux 用户,您可能熟悉命令行界面。它是用于处理文件、目录和系统其他方面的强大工具。但是,如果您处理大量文本数据,则可能难以理解所有内容。这就是 column 命令的用武之地。此命令允许您将文本格式化为列,指定分隔符,对齐列,换行文本,甚至对数据列进行排序。在本博文中,我们将探讨在 Linux 中使用 column 命令的不同方法,以及它如何帮助您更有效地处理文本文件。

什么是 Column 命令?

column 命令是一个 Linux 实用程序,可帮助您将文本格式化为列。默认情况下,它将使用任何空格字符(例如空格或制表符)分隔列,但您也可以指定您选择的分隔符。当处理包含大量数据的文本文件时,此命令尤其有用,因为它可以使这些数据更易于阅读和操作。

基本用法

column 命令的基本用法非常简单。要使用它,只需将另一个命令的输出通过管道传递到 column。这是一个示例:

$ ls -l | column -t total 8 drwxr-xr-x 2 user user 4096 May 6 14:45 Desktop drwxr-
xr-x 2 user user 4096 May 6 14:45 Documents drwxr-xr-x 2 user user 4096 May 6 14:45 
Downloads drwxr-xr-x 2 user user 4096 May 6 14:45 Music drwxr-xr-x 2 user user 4096 
May 6 14:45 Pictures drwxr-xr-x 2 user user 4096 May 6 14:45 Public drwxr-xr-x 2 
user user 4096 May 6 14:45 Templates drwxr-xr-x 2 user user 4096 May 6 14:45 Videos

在此示例中,我们使用 ls -l 命令以长格式列出目录的内容。然后,我们将该输出通过管道传递到 column 命令,并使用 -t 标志将输出格式化为列。如您所见,生成的输出比 ls -l 的原始输出更易于阅读。

指定分隔符

如前所述,column 命令将使用任何空格字符作为列之间的默认分隔符。但是,您也可以使用 -s 标志指定您选择的分隔符。这是一个示例:

$ cat example.txt John,Smith,35 Jane,Doe,27 Bob,Johnson,42 $ cat example.txt | column -s , -t John Smith 35 Jane Doe 27 Bob Johnson 42

在此示例中,我们使用 cat 命令输出名为 example.txt 的文件的内容。然后,我们将该输出通过管道传递到 column 命令,并使用 -s 标志指定列之间的分隔符应为逗号 (,)。然后,使用 -t 标志将生成的输出格式化为列。

对齐列

默认情况下,column 命令将左对齐列。但是,您也可以使用 -o 标志为每列指定偏移量。这是一个示例:

$ cat example.txt | column -s , -t -o " | " John | Smith | 35 Jane | Doe | 27 Bob | Johnson | 42

在此示例中,我们使用 cat 命令输出名为 example.txt 的文件的内容。然后,我们将该输出通过管道传递到 column 命令,并使用 -s 标志指定列之间的分隔符应为逗号 (,)。我们还使用 -t 标志将输出格式化为列。最后,我们使用 -o 标志指定每列应以管道符 (|) 为偏移量。

如您所见,生成的输出比 cat example.txt 的原始输出更易于阅读。通过对齐列,我们更容易比较不同行中的值。

换行文本

默认情况下,column 命令将截断任何长于列宽的文本。但是,您可以使用 -c 标志换行文本而不是截断它。这是一个示例:

$ cat longtext.txt | column -c 80 Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. Praesent ut metus quis enim pellentesque varius. Nulla facilisi. 
Nullam luctus, risus vel mattis placerat, nunc arcu cursus sapien, in bibendum 
felis risus quis metus. Maecenas lacinia leo sapien, eget bibendum mi rhoncus a. In 
hac habitasse platea dictumst. Fusce sit amet arcu et diam pretium faucibus. Donec 
laoreet magna sed dui consectetur lobortis. Ut ultrices ante id est congue, eu 
tincidunt mauris hendrerit. Duis at fringilla velit.

在此示例中,我们使用 cat 命令输出名为 longtext.txt 的文件的内容。然后,我们将该输出通过管道传递到 column 命令,并使用 -c 标志在 80 个字符处换行文本。如您所见,生成的输出比 cat longtext.txt 的原始输出更易于阅读。

排序列

column 命令也可用于对数据列进行排序。为此,您可以将 sort 命令与 column 命令结合使用。这是一个示例:

$ cat numbers.txt 4 2 3 1 5 7 6 8 9 $ cat numbers.txt | column -t | sort -n -k 2 4 2 3 1 5 7 6 8 9

在此示例中,我们使用 cat 命令输出名为 numbers.txt 的文件的内容。然后,我们将该输出通过管道传递到 column 命令,并使用 -t 标志将输出格式化为列。最后,我们使用 sort 命令以及 -n 标志(按数字排序)和 -k 标志(指定我们希望根据第二列排序)。

如您所见,生成的输出按第二列排序。当您有很多数据并且想要快速找到特定列中的最高值或最低值时,这非常有用。

结论

column 命令是用于处理 Linux 中文本文件的强大工具。它可以帮助您将文本格式化为列,指定分隔符,对齐列,换行文本,甚至对数据列进行排序。通过掌握使用 column 命令的不同方法,您可以节省处理大量数据时的时间和精力。因此,下次您发现难以理解文本文件时,请记住尝试使用 column 命令!

更新于:2023年6月26日

1K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告