如何在 Linux 中使用“cat”和“tac”命令(附示例)
本文是我们 Linux 技巧和窍门系列的一部分,在本文中,我们将通过一些实际示例介绍cat命令(Linux 中最常用的命令)和tac(cat 命令的反向 - 以相反的顺序打印文件)的一些基本用法。
另请参阅: Linux 中 13 个有用的“cat”命令示例
Linux 中 Cat 命令的基本用法
Cat命令是Concatenate的缩写,是 *nix 系统中最常用的命令之一。该命令最基本的用法是读取文件并将其显示到stdout,即在终端上显示文件的内容。
# cat file.txt
cat命令的另一个用途是读取或合并多个文件并将输出发送到监视器,如下例所示。
# cat file1.txt file2.txt file3.txt
该命令还可用于使用“>”
Linux 重定向运算符将多个文件连接(合并)为一个文件。
# cat file1.txt file2.txt file3.txt > file-all.txt
file-all.txt
通过使用附加重定向器,您可以使用以下语法将新文件的内容添加到底部。
# cat file4.txt >> file-all.txt
cat命令可用于将文件内容复制到新文件。新文件可以任意重命名。例如,将文件从当前位置复制到目录/tmp/
中。
# cat file1.txt > /tmp/file1.txt
将文件从当前位置复制到/tmp/
目录并更改其名称。
# cat file1.txt > /tmp/newfile.cfg
cat命令的一个不太常用的用法是使用以下语法创建一个新文件。编辑完文件后,点击CTRL+D
保存并退出新文件。
# cat > new_file.txt
为了对文件的所有输出行(包括空行)进行编号,请使用开关-n
。
# cat -n file-all.txt
要仅显示每个非空行的编号,请使用开关-b
。
# cat -b file-all.txt
想要了解有关 Linux cat 命令的更多信息?请阅读我们的文章《Linux 中 13 个有用的“cat”命令示例》。
了解如何在 Linux 中使用 Tac 命令
另一方面,*nix 系统中一个不太知名且较少使用的命令是tac
命令。Tac实际上是命令的反向版本cat
(也可以反向拼写),它将文件的每一行从最底行开始打印到最顶行,并打印到机器的标准输出中。
# tac file-all.txt
该命令最重要的选项之一由开关表示-s
,它根据字符串或关键字将文件内容与文件分离。
# tac file-all.txt --separator "two"
接下来, tac命令最重要的用途是,它可以为调试日志文件提供很大的帮助,反转日志内容的时间顺序。
$ tac /var/log/auth.log Or to display the last lines $ tail /var/log/auth.log | tac
示例输出
example@example ~ $ tac /var/log/auth.log pr 6 16:09:01 example CRON[17714]: pam_unix(cron:session): session closed for user root Apr 6 16:09:01 example CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:05:01 example CRON[17582]: pam_unix(cron:session): session closed for user root Apr 6 16:05:01 example CRON[17583]: pam_unix(cron:session): session closed for user root Apr 6 16:05:01 example CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:05:01 example CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:00:01 example CRON[17434]: pam_unix(cron:session): session closed for user root ....
example@example ~ $ tail /var/log/auth.log | tac Apr 6 16:09:01 example CRON[17714]: pam_unix(cron:session): session closed for user root Apr 6 16:09:01 example CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:05:01 example CRON[17582]: pam_unix(cron:session): session closed for user root Apr 6 16:05:01 example CRON[17583]: pam_unix(cron:session): session closed for user root Apr 6 16:05:01 example CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:05:01 example CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:00:01 example CRON[17434]: pam_unix(cron:session): session closed for user root Apr 6 16:00:01 example CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 15:55:02 example CRON[17194]: pam_unix(cron:session): session closed for user root Apr 6 15:55:01 example CRON[17195]: pam_unix(cron:session): session closed for user root ...
cat
与命令相同,在操作文本文件tac
方面表现出色,但应避免在其他类型的文件中使用,尤其是二进制文件或第一行表示将运行它的程序的文件。