一、最简单的用法。只查看文件内容:

:~# cat a.txt
aaaaaaaaa
bbbbbbbbccc
ddd
ccee
ee
root@abb:~#

二、查找文件中的内容

:~# cat a.txt | grep cc
bbbbbbbbccc
ccee

三、利用cat创建文件

如果原来没有 b.txt 文件。那么:

:~# cat >b.txt <<EOF
> EOF

输入第一行后,输入EOF,回车,就可以生成一个 b.txt 文件。其中EOF是告诉 bash 哪个符号代表文件结束。当然你也可以使用自己习惯的符号。

四、利用cat清空文件内容

如果 c.txt 文件有很多内容,而你想要清空的话,同样可以使用上面提到的命令形式:

:~# cat >c.txt <<EOF
> EOF

五、利用cat向文件中写入内容,并覆盖以前的内容。
下面代码的步骤是这样的:先查看到 c.txt 没有内容,就向 c.txt 文件里写入内容,然后又写入新内容覆盖掉。

:~# cat c.txt
:~# cat >c.txt <<EOF
> 1111111
> 2222222
> EOF
:~# cat c.txt
1111111
2222222
:~# cat >c.txt <<EOF
> 33333333
> EOF
:~# cat c.txt
33333333
:~#

六、用 cat 命令向文件中写入内容的时候,对于 $ 符号的处理。

有些时候可能会利用cat命令生成一些 Shell 脚本文件。这个时候如果直接写 $ 符号,有可能被认为是调用变量,导致无法写入文件。
比如像下面一样直接输入 $ 的话:

:~# cat >d.sh <<EOF
> DATE=$(date +%Y%m%d)
> mkdir /root/$DATE
> EOF


那么 $ 符号并没有输入到文件中。文件内容会变成如下的样子

:~# cat d.sh
DATE=20161006
mkdir /root/

那么如果我们要把 $ 符号正常输入到文件中,该怎么办呢?
答案是需要在 $ 符号前面加 \ 。命令如下:

~# cat >d.sh <<EOF
> DATE=\$(date +%Y%m%d)
> mkdir /root/\$DATE
> EOF

这样把 $ 转义,就可以得到正常的文件内容了:

:~# cat d.sh
DATE=$(date +%Y%m%d)
mkdir /root/$DATE

七、向文件的尾部写入内容。
与写入新内容覆盖源文件相似。只是把原来的 > 换成 >> 即可。
可以像下面这样在文件尾部加入文字内容。

:~# cat >>a.txt <<EOF
> 11111
> 222222

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐