日期:2014-05-16  浏览次数:20788 次

我使用过的Linux命令之cat - 连接文件或标准输入并打印

我使用过的Linux命令之cat - 连接文件或标准输入并打印

本文链接:http://codingstandards.iteye.com/blog/801090 ? (转载请注明出处)

?

用途说明

cat命令的用途是连接文件或标准输入并打印(Concatenate FILE(s), or standard input, to standard output.)。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

?

常用参数

将标准输入保存到文件FILE中,如果文件已经存在,则覆盖掉原来的。

格式:cat >FILE

将标准输入追加到文件FILE末尾。

格式:cat >>FILE

显示文件FILE的内容。

格式:cat FILE

显示文件FILE的内容加上行号,需要加上参数-n。行号从1开始。nl命令也可以输出行号。

格式:cat -n FILE

格式:nl FILE

使用-n参数时,所有空行也会显示行号,若忽略掉空行,改用-b就行。

格式:cat -b FILE

当遇到有连续两行以上的空白行,就代换为一行的空白行,可以使用-s参数。

格式:cat -s FILE

将两个文件FILE1和FILE2的内容合并为一个文件FILE。

格式:cat FILE1 FILE2 >FILE

?

使用示例

示例一 从标准输入创建文件

[root@web setup]# cat >1.txt
Hello
Bash
Linux

Ctrl+D
[root@web setup]# ls -l 1.txt
-rw-r--r-- 1 root root 17 11-02 21:32 1.txt
[root@web setup]# cat 1.txt
Hello
Bash
Linux
[root@web setup]# cat <1.txt
Hello
Bash
Linux
[root@web setup]#

?

示例二 使用here doc来生成文件

注意粗体部分,here doc可以进行字符串替换。

[root@web setup]# cat >2.txt <<EOF
> Hello
> Bash
> Linux
> PWD=$(pwd)
> EOF
[root@web setup]# ls -l 2.txt
-rw-r--r-- 1 root root 33 11-02 21:35 2.txt
[root@web setup]# cat 2.txt
Hello
Bash
Linux
PWD=/root/setup
[root@web setup]#

?

示例三 输出行号

[root@web setup]# cat -n 1.txt
???? 1? Hello
???? 2? Bash
???? 3? Linux
[root@web setup]# nl 1.txt
???? 1? Hello
???? 2? Bash
???? 3? Linux
[root@web setup]#

?

示例四 在bash脚本中把文件内容加载到变量中

# 把.bash_profile的内容加载到变量中
TEXT=$(cat .bash_profile)

# 打印TEXT内容
echo "$TEXT"

?

[root@web ~]# TEXT=$(cat .bash_profile)
[root@web ~]#
[root@web ~]# echo "$TEXT"
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
??????? . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
[root@web ~]#

?

问题思考

?

相关资料

【1】方寸心间 linux cat 命令详解

【2】开发学院 linux cat命令

【3】记录技术点滴 分享生活智慧 linux cat 命令详解

?

?

返回 我使用过的Linux命令系列总目录

?

?