如何在Linux/UNIX中使用cat命令
如何在Linux中使用cat命令?
如何在UNIX中使用cat命令?
如何在UNIX或Linux Shell脚本中使用cat命令?
cat命令被认为是Linux或UNIX等操作系统上最常用的命令之一。
本教程显示如何将cat命令与Unix/Linux系统的基本示例和用法结合使用。
cat可以用于以下目的:
- 在屏幕上显示文本文件。
- 复制文本文件。
- 合并文本文件。
- 创建新的文本文件。
cat命令语法
语法如下:
cat filename cat options filename cat file1 file2 cat file1 file2 > newcombinedfile
显示文件内容
要读取或读取文件的内容,请执行:
$ cat /etc/passwd
上面的命令将显示名为/etc/passwd的文件的内容。
默认情况下,cat会将输出发送到监视器屏幕。
但是,您可以使用重定向操作符从屏幕重定向到另一个命令或文件,如下所示:
$ cat /etc/passwd > /tmp/test.txt
在上面的示例中,cat命令的输出被写入/tmp/test.txt文件,而不是显示在监视器屏幕上。
您可以使用cat命令本身查看/tmp/test.txt:
$ cat /tmp/test.txt
连接文件
串联意味着将多个文件内容放在一起。
未修改或删除原始文件。
在此示例中,cat将串联三个文件/etc/hosts、/etc/resolv.conf和/etc/fstab的内容的副本:
$ cat /etc/hosts /etc/resolv.conf /etc/fstab
您可以使用shell标准输出重定向,如下所示重定向输出:
$ cat /etc/hosts /etc/resolv.conf /etc/fstab > /tmp/outputs.txt $ cat /tmp/outputs.txt
您也可以使用管道来过滤数据。
在此示例中,使用shell管道将cat的输出发送到less命令,因为文件太大,所有文本一次都无法显示在屏幕上:
$ cat /etc/passwd | less
如何创建文件?
要创建一个名为foo.txt的文件,请执行:
$ cat > foo.txt
输出示例:
This is a test.
要保存并退出,请按CONTROL和d键(CTRL + D)。
请注意,如果已经存在一个名为foo.txt的文件,它将被覆盖。
您可以使用>>运算符将输出追加到同一文件:
$ cat >> bar.txt
现有的bar.txt文件将保留,并将任何新文本添加到名为bar.txt的现有文件的末尾。
要保存并退出,请按CONTROL和d键(CTRL + D)。
如何复制文件?
cat命令还可用于创建新文件并将现有文件中的数据传输到该文件。
复制
$ cat oldfile.txt > newfile.txt
要输出文件1的内容,然后是标准输入,然后是文件2的内容,请执行:
$ cat file1 - file2
连字符表示从键盘输入。
在此示例中,要创建一个新文件file2,该文件包含从键盘执行的文本,然后是file1的内容,请执行:
$ cat - file1 > file2
猫命令选项
要对非空白的输出行进行编号,请输入(仅适用于GNU cat命令版本):
$ cat -b /etc/passwd
输出示例:
1 root:x:0:0:root:/root:/bin/bash 2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh 3 bin:x:2:2:bin:/bin:/bin/sh 4 sys:x:3:3:sys:/dev:/bin/sh 5 sync:x:4:65534:sync:/bin:/bin/sync 6 games:x:5:60:games:/usr/games:/bin/sh 7 man:x:6:12:man:/var/cache/man:/bin/sh 8 lp:x:7:7:lp:/var/spool/lpd:/bin/sh 9 mail:x:8:8:mail:/var/mail:/bin/sh 10 news:x:9:9:news:/var/spool/news:/bin/sh
要对所有输出行编号,请输入(仅GNU cat版本):
$ cat -n /etc/passwd
要压缩多个相邻的空白行,请输入(仅GNU cat版本):
$ cat -s /etc/passwd
要显示所有非打印字符,使其看起来像可见,除了制表符和行尾字符,请输入(仅适用于GNU cat版本):
$ cat -v filename
cat命令
cat的主要目的是对文件进行分类。
如果它只有一个文件,则根本不进行任何连接就是浪费时间,并花费您一个过程。
例如,
$ cat /proc/cpuinfo | grep model
可以如下使用:
$ grep model /proc/cpuinfo
另一个例子,
cat filename | sed -e 'commands' -e 'commands2'
可以如下使用,这比较便宜:
sed sed -e 'commands' -e 'commands2' filename