当前位置: 首页>>编程语言>>正文


如何在Linux终端中以列格式显示文件内容

有时需要在Linux中的命令行上以列格式显示文件的内容。幸运的是,有一个Linux命令Column,可让您以列格式显示文件的内容。也就是,可以将文本从行转为列显示,或者说做行列转换。今天,我们将研究Column命令的基础知识,以及如何以最有用的方式使用它来格式化内容。对于本文,我使用Ubuntu 18.04 LTS来描述该过程。

Column(列)命令的语法

column命令的常规语法为:

$ colunm  [参数]   [文件名]

在[参数]中,可以指定以下选项:

-s 指定分隔符。

-c 根据一行中允许的总字符来格式化输出。

-t 创建表,默认情况下,定界符默认是空格,或使用–s选项指定的字符

-x 默认情况下,行在列之前填充,但是使用此参数可以在填充行之前填充列

-n 默认情况下,多个定界符合并为一个定界符。您可以使用–n参数禁用此行为。

-e 默认情况下,空行将被忽略。您可以使用–e参数禁用此行为。

Column(列)命令用法

例如,我创建了一个测试文件名为“test”,其内容如下图所示。请注意,您可以用其他方式查看文件的内容,不一定要在终端中使用cat命令打开它。

通过按下启动终端Ctrl + Alt + T并输入:

$ cat [文件名]

我的测试文件如下所示:

Content of the test file

要查看column命令的实际作用,请键入column后跟文件名:

$ column [文件名]

通过输入以上命令,您将看到该命令已将文件的内容转换为列。

Column command usage

这是对Column命令的最简单的解释。现在,我们将看到此命令的更多用法。

使用自定义定界符或分隔符

您可以在Column命令中使用自定义分隔符,该命令将告诉它何时应将内容拆分为新列。

我使用的测试文件包含下图所示的内容。它包含用逗号分隔的数据。

CSV test file

采用 –t参数以表格格式显示内容。默认情况下,它使用空格作为分隔符。

Column command for csv files

要基于特定的分隔符分隔内容,请使用–s参数,后跟特定的分隔符或定界符,如以下命令语法所示:

$ column -t [-s分隔符] [文件名]

Split file by comma

使用-n参数添加多个定界符

默认情况下,column命令用单个分隔符合并多个相邻的相同分隔符。例如,我们有一个示例文件,其中包含具有多个相邻分隔符的内容,如下图所示。

Column命令将多个分隔符视为一个分隔符,并将显示以下输出

添加–n选项将禁用此行为。使用以下语法运行命令:

$ column  [-n] [-t] [-s 分隔符] [文件名]

The -n option of column command

您会注意到前两列之间的空间,这意味着它没有将相邻的分隔符合并为一个分隔符。

使用-e参数添加空行

默认情况下,column命令将忽略空行。如果要在列中包含这些空行,请使用–e参数。

例如,我有以下示例文件,其中带有一些空行。

Another test file

我已经使用了column命令,但是您可以看到column命令没有包含空行。

column command result

要允许column命令在输出中包含该空行,请使用以下语法中的命令:

$column [-e] [-t] [-s 分隔符] [文件名]

Linux column command in action

您会注意到,空行现在包含在column命令的输出中。

使用-x参数在行之前填充列

Column命令通过先填充行,然后填充列。这可能不适用于某些文件的行列转换。但是,您可以更改此行为,并且可以在填充行之前填充列。为了清楚理解,请参见以下示例。

在此示例中,我有一个名为“a.txt”的测试文件,其中包含1-100的数字,每行一个数字。我们希望数字转为从左到右,从上到下,按行业排列。

但是使用Column命令将显示如下输出。但是,这不符合我们要求的排列意义。

 

 

 

 

 

 

为此,我们将使用–x参数。键入column,后跟–x和文件名。

$ column [-x] [文件名]

 

 

 

 

 

 

现在,您将注意到此输出采用了适合我们上面的示例文件的格式。

使用-c参数更改显示宽度

您可以扩展命令输出的显示宽度。使用–c参数指定行的宽度。在此示例中,我有一个名为“xyz”的文件,其中包含一些内容,如下所示。

Test file content

仅使用column命令将显示如下输出:

Column command without parameters

要更改显示的宽度,请键入column命令,然后键入–c参数。为了减小显示的宽度,我用以下语法输入了命令:

$ column [-c字符] [文件名]

Using -c parameter

为了增加显示器的宽度,我输入了如下图所示的命令:

Using -c parameter to define width

现在您可以看到显示器的宽度增加了。

保存列式输出

要保存使用Column命令完成的格式化输出,可以在Terminal终端中使用以下命令。该命令的语法为:

$ column [参数] [文件名1] >文件名2

Save formatted content to file

完。

参考资料

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/4250.html,未经允许,请勿转载。