操作系统

cat命令详解

Jager · 12月24日 · 2013年 · 5456次已读

cat 命令是 linux 下的一个文本输出命令,通常是用于观看某个文件的内容的;

cat 主要有三大功能:
1.一次显示整个文件。
如 cat   filename
2.从键盘创建一个文件。
如 cat  >  filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件(点击查看实用例子)。
如 cat   file1   file2  > file3

cat 具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting

范例:
把 file1 的档案内容加上行号后输入 file2 这个档案里:
cat -n file1 > file2

把 file1 和 file2 的档案内容加上行号(空白行不加)之后将内容附加到 file3 里:
cat -b file1 file2 >> file3

cat /dev/null > /etc/test.txt 此为清空/etc/test.txt 档案内容,等同于 >/etc/test.txt (慎用!)

在 linux shell 脚本中我们经常见到类似于 cat << EOF 的语句,不熟悉的童鞋可能觉得很奇怪:EOF 好像是文件的结束符,用在这里起到什么作用?

EOF 是“end of file”,表示文本结束符,也就是说 cat 检测到 EOF 字串的时候就会结束操作。
二、使用
看例子是最快的熟悉方法:
# cat << EOF > test.sh
> 我是第一行
> 我是第二行
> EOF

结果:
cat test.sh
我是第一行
我是第二行

可以看到,当 cat 检测到 EOF 时,就会结束操作,仅保存 EOF 之前的内容。
而 EOF 并不是固定的,可以使用其他字符串代替,比如 EEE 或 HOH 之类的,简单说就是你在 cat 命令后自行约定的中断字符串。
所以 cat << EFF > test.sh 和上面的例子是一样的,不过结束字符串就变成了 EFF 了。
另外,后面的符号>如果是 1 个就是覆盖写入,2 个就是追加写入,注意按需求选择哦!

4、非脚本中
如果不是在脚本中,我们可以用 Ctrl-D 结束 cat 操作:
# cat > test.txt
第一行
第二行
第三行
使用下面的组合键就可以结束输入啦!
Ctrl-D

结果:
引用# cat test.txt
第一行
第二行
第三行
使用下面的组合键就可以结束输入啦!

3 条回应