如何在 Linux 中使用“cat”和“tac”命令并举例

这篇文章是我们的一部分系列,在本文中我们将介绍一些基本用法命令(Linux 中最常用的命令)和塔克(cat 命令的反向操作 - 以相反的顺序打印文件)以及一些实际示例。

另请阅读:

Linux中Cat命令的基本用法

命令,缩写为连接, 是 *nix 系统中最常用的命令之一。该命令最基本的用法是读取文件并将其显示给标准输出,意思是在你的终端上显示文件的内容。

# cat file.txt
在Linux中查看文件内容

的另一种用法命令的作用是读取或组合多个文件并将输出发送到监视器,如下例所示。

# cat file1.txt file2.txt file3.txt
查看多个文件的内容

该命令还可用于使用以下命令将多个文件连接(连接)为一个文件:“>”Linux 重定向运算符。

# cat file1.txt file2.txt file3.txt > file-all.txt
在 Linux 中连接多个文件

通过使用追加重定向器,您可以将新文件的内容添加到文件的底部file-all.txt使用以下语法。

# cat file4.txt >> file-all.txt
将内容文件附加到新文件

命令可用于将文件的内容复制到新文件。新文件可以任意重命名。例如,将文件从当前位置复制到/tmp/目录。

# cat file1.txt > /tmp/file1.txt 
将文件内容复制到新文件

将文件从当前位置复制到/tmp/目录并更改其名称。

# cat file1.txt > /tmp/newfile.cfg
将文件复制到 /tmp 位置

较少使用命令是使用以下语法创建一个新文件。完成编辑文件后点击CTRL+D保存并退出新文件。

# cat > new_file.txt
使用 Cat 命令创建新文件

为了对文件的所有输出行(包括空行)进行编号,请使用-n转变。

# cat -n file-all.txt
将数字添加到文件中的行

要仅显示每个非空行的数量,请使用-b转变。

# cat -b file-all.txt
打印文件中的行号

想要了解更多有关 Linux cat 命令的信息?然后阅读我们的文章。

了解如何在 Linux 中使用 Tac 命令

另一方面,*nix 系统中一个鲜为人知且较少使用的命令是tac命令。塔克实际上是相反的版本cat命令(也向后拼写),它将文件的每一行从底行开始到顶行打印到机器标准输出。

# tac file-all.txt
以相反顺序打印内容文件

该命令最重要的选项之一由-sswitch,它根据字符串或关键字将文件内容与文件分开。

# tac file-all.txt --separator "two"
删除文件中的匹配字符串

接下来是最重要的用法塔克命令的优点是,它可以为调试日志文件提供很大的帮助,颠倒日志内容的时间顺序。

$ tac /var/log/auth.log

Or to display the last lines

$ tail /var/log/auth.log | tac
样本输出
tecmint@tecmint ~ $ tac /var/log/auth.log
pr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr  6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...

与相同cat命令,tac做得很好,但应避免在其他类型的文件中使用,尤其是二进制文件或第一行表示将运行它的程序的文件。

嘿 TechMint 读者,

令人兴奋的消息!每个月,我们的顶级博客评论者都有机会赢得丰厚奖励,例如免费的 Linux 电子书,例如红细胞认证工程师,红十字会协会,LFCS,学习Linux, 和awk, 每个值20 美元

学习!

我是一个计算机迷,是开源和基于 Linux 的系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面有大约 4 年的经验。


每个教程位于泰克明特由经验丰富的 Linux 系统管理员团队创建使其符合我们的高品质标准。