目录
以表格式显示文件内容
使用自定义定界符
跳过或包括空线
自定义输出分离器
将行转向列
确定终端柱宽度
首页 系统教程 操作系统 在Linux中使用列命令的不同方法

在Linux中使用列命令的不同方法

Jul 17, 2025 am 09:20 AM

您是否曾经发现自己需要处理CSV文件并以结构化表格式生成输出?不久前,我正在处理一个凌乱的文件,该文件未正确格式化。它在每列之间都有过多的空间,我需要将其转换为数据库上传的CSV格式。清理并生成CSV输出后,我发现很难在视觉上验证数据的完整性,因为格式不太清楚。那是命令对我非常有用的时候。

根据Manpage,命令用于“列列表”。简单地说,这是一个轻巧的实用程序,它允许您将数据格式化为结构化的表格格式(将其组合为行和列),基于源文件的布置方式。命令是Util-Linux软件包的一部分。

要记住的一个重要的事情是,命令对基于Debian和基于RHEL的分布的行为有所不同。这是因为基于Debian的系统使用BSDMainutils软件包中的实用程序,而不是来自Util-Linux的列实用程序。与BSDMainutils中的版本相比, Util-Linux中的版本更加最新。您可以在错误报告中阅读有关此信息的更多信息。

 <code>$ dpkg -S $(which column)</code> 

在Linux中使用列命令的不同方法

为此,我正在使用CentOS 7 ,我将向您展示UbuntuCentos 7之间的差异。要检查命令的版本(以及Util-Linux的版本),请运行以下命令。请注意,这对Debian或Ubuntu Systems不起作用。

 <code>$ column --version # does not work on Debian/ubuntu</code>

另外,您可以使用以下命令检查Util-Linux版本:

 <code>$ rpm -qa | grep -i util-linux # for Redhat, Centos, Fedora, Amazon Linux $ dpkg -l | grep -i util-linux # for Ubuntu</code>

潜入命令之前,最好检查MAN页面以探索所有可用的选项。

 <code>$ man column</code>

以表格式显示文件内容

您可以使用命令将文件转换为表格,将文件名与-t选项一起传递作为参数。例如,我将使用/etc /passWD文件作为输入。

 <code>$ column -t /etc/passwd</code> 

在Linux中使用列命令的不同方法

查看上面的图像,输出可能不是您预期的 - 可能看起来很奇怪。这是因为空格用作默认的分界符。可以通过指定自定义定界符来更改此行为。

使用自定义定界符

自定义定系数提供了更大的灵活性。使用-s选项,然后使用所需的定界符。让我们使用":"作为定界符,以正确格式化/etc /passwd文件。

 <code>$ column -s ":" -t /etc/passwd</code> 

在Linux中使用列命令的不同方法

如您所见,现在的输出格式整洁。从Util -Linux版本2.23开始, -s选项不再将多个相邻定界符视为一个。

但是,如果您在Ubuntu上运行相同的命令,您会注意到它确实将多个定界符视为一个。这是由于BSDMainutils中包含的版本所致。

 <code>$ column -s ":" -t /etc/passwd</code> 

在Linux中使用列命令的不同方法

要在Debian或Ubuntu上修复此行为,请使用-n标志。

 <code>$ column -t -s ":" -n /etc/passwd # Only on Debian/Ubuntu</code> 

在Linux中使用列命令的不同方法

跳过或包括空线

默认情况下,命令忽略输入文件中的空白行。假设您的输入文件为CSV格式,并在条目之间包含空白行。当您使用格式化时,将跳过这些空白行。

 <code>$ column -t -s ";" dummy.txt</code> 

在Linux中使用列命令的不同方法

如上图所示,在生成表时忽略了虚线

注意:命令的BSDMainutilUtil-Linux版本中,此行为是一致的。但是,在Debian或Ubuntu上,您可以使用-e标志来覆盖它。

 <code>$ column -e -t -s "," dummy.txt # Only on Debian/Ubuntu</code> 

在Linux中使用列命令的不同方法

现在,该表已正确生成,并保留了空线。

自定义输出分离器

默认情况下,将两个空间用作列之间的分离器。您可以使用-o选项更改此操作。但是,此功能仅在Util-Linux版本中可用(基于RHEL的系统中)。

 <code>$ column -t -s "," -o "||" dummy.txt # Only on Rhel based distro</code> 

在Linux中使用列命令的不同方法

将行转向列

使用-x选项,您可以将行转移到列中。此功能在命令的RHELUBUNTU变体中都以相同的方式工作。当您需要提取某些字段并将其制成CSV文件中的标题时,这可能特别有用。

 <code>$ column -x fillcols.txt</code> 

在Linux中使用列命令的不同方法

另外,如果您在没有任何标志的情况下运行命令,则其行为与使用-x标志的情况相同。

确定终端柱宽度

命令使用($COLUMNS)环境变量来确定终端的宽度。基于此,它调整了表格的显示方式。

 <code>$ echo $COLUMNS</code>

在下面的示例中,我调整了终端窗口的大小,以便将$COLUMNS设置为60 ,然后运行命令。然后,我再次调整了窗口,以使$COLUMNS设置为114 ,然后再次运行相同的命令。您可以清楚地看到根据终端尺寸显示表的区别。

 <code>$ column -t -s ":" /etc/passwd | head 5</code> 

在Linux中使用列命令的不同方法

结束了本指南。如果您有任何建议或反馈,请随时在下面发表评论。

以上是在Linux中使用列命令的不同方法的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

PHP教程
1511
276
安装Linux的系统要求 安装Linux的系统要求 Jul 20, 2025 am 03:49 AM

LinuxCanrunonModestHardwarewtareWithSpecificminimumRequirentess.A1GHZPROCESER(X86ORX86_64)iSNEDED,withAdual-Corecpurecommondend.r AmshouldBeatLeast512MbForCommand-lineUseor2Gbfordesktopenvironments.diskSpacePacereQuiresaminimumof5-10GB,不过25GBISBISBETTERFORAD

如何在Linux上安全删除硬盘驱动器 如何在Linux上安全删除硬盘驱动器 Jul 24, 2025 am 12:08 AM

确认目标硬盘设备名(如/dev/sda),避免误删系统盘;2.使用sudoddif=/dev/zeroof=/dev/sdXbs=1Mstatus=progress全盘覆写零值,适用于大多数场景;3.敏感数据使用sudoshred-v-n3/dev/sdX进行三次随机数据覆写,确保无法恢复;4.可选执行sudobadblocks-wsv/dev/sdX做破坏性写入测试;最后用sudohexdump-C/dev/sdX|head验证是否全为零,完成安全擦除。

如何在Linux中添加用户 如何在Linux中添加用户 Jul 21, 2025 am 03:32 AM

在Linux中添加用户常用useradd或adduser命令。1.使用useradd时需手动设置密码和家目录,加-m参数可创建家目录;2.可通过-s、-G、-u等参数指定shell、组和UID;3.adduser是交互式命令,适合新手自动完成配置;4.注意权限、用户名唯一性和家目录权限问题;5.误操作可用userdel删除用户及家目录。掌握这些要点可高效安全地管理用户。

如何查看我的Linux系统信息和版本? 如何查看我的Linux系统信息和版本? Jul 26, 2025 am 02:59 AM

想知道Linux系统信息和版本,可通过以下步骤操作:1.使用lsb_release-a查看发行版信息;2.查看/etc/os-release文件获取版本详情;3.用uname-r或uname-mrs确认内核版本及系统架构;4.运行lscpu、free-h或dmidecode(需root权限)获取硬件信息。上述方法适用于不同发行版,部分命令可能需安装或权限调整。

如何在Linux中编辑主机文件 如何在Linux中编辑主机文件 Jul 21, 2025 am 03:02 AM

要修改Linux系统的hosts文件需用管理员权限编辑。1.hosts文件位于/etc/目录下,可用cat/etc/hosts查看内容;2.使用sudo配合nano/vim/gedit等编辑器进行修改,格式为IP地址加主机名;3.修改后可能需要清除DNS缓存或重启NetworkManager服务生效;4.注意格式正确、避免频繁修改、注释不确定的条目即可安全操作。

如何使用Cron和Anacron在Linux上安排任务 如何使用Cron和Anacron在Linux上安排任务 Aug 01, 2025 am 06:11 AM

cronisusedforpreciseschedulingonalways-onsystems,whileanacronensuresperiodictasksrunonsystemsthataren'tcontinuouslypowered,suchaslaptops;1.Usecronforexacttiming(e.g.,3AMdaily)viacrontab-ewithsyntaxMINHOURDOMMONDOWCOMMAND;2.Useanacronfordaily,weekly,o

安装Linux后该怎么办 安装Linux后该怎么办 Jul 23, 2025 am 02:57 AM

AfterinstallingLinux,thefirststepsincludeupdatingyoursystem,installingessentialsoftware,settingupbackupandsecuritymeasures,andcustomizingtheinterfacetosuityourpreferences.1)Updateyoursystemusingtheappropriatecommandforyourdistro(e.g.,sudoaptupdate&am

如何使用终端在Linux上安装软件? 如何使用终端在Linux上安装软件? Aug 02, 2025 pm 12:58 PM

在Linux上安装软件主要有三种方法:1.使用包管理器,如apt、dnf或pacman,通过更新源后执行install命令安装,例如sudoaptinstallcurl;2.对于.deb或.rpm文件,分别使用dpkg或rpm命令安装,并在需要时修复依赖;3.使用snap或flatpak跨平台安装应用,如sudosnapinstall软件名,适用于追求版本更新的用户,推荐优先使用系统自带包管理器以获得更好的兼容性和性能。

See all articles