cat主要有三大功能:
显示一个或者多个文件的所有内容(可以通过选项增加行数 将多个空白行替换成一个空白
行等),创建一个文件,追加一个文件(在文件后面加内容)。
1.一次显示整个文件。
$cat filename
2.从键盘创建一个文件。
$cat > filename<<EOF
只能创建新文件,不能编辑已有文件.
追加一个文件。
$cat>> filename<<EOF
将多个文件追加到一个文件后面
$cat file1 file2 >>filename
3.将几个文件合并为一个文件。
$cat file1 file2 > file
怎么记忆呢?
>file的>符号有直观上有输入的感觉在里面,那么当file文件不存在的时候,就创建一个文字叫file的文件,当file
文件存在的时候,就重新编辑这个文件,原来的东西就清空了,而>>file就是追加,你看,有两个>就理解为在原来
的基础上编辑。所以就是追加。而需要注意的是,当将两个或者多个文件追加到另一个文件上的时候,只能追加,无法编辑。
网上很多写命令的时候都是cat<<EOF >file这种形式,如同我后面的例子,但是我觉得不方便记忆,因此上面的表达
方式更好记忆一些。
cat具体命令格式为:cat [-AbeEnstTuv] [--help] [--version] fileName
如果没有>file的话,就表示讲file1file2连接后输出到屏幕,有>file的话就是连接后存入到file文件中。
参数:
-n或–number由1开始对所有输出的行数编号
-b或–number-nonblank和-n相似,只不过对于空白行不编号
-s或–squeeze-blank当遇到有连续两行以上的空白行,就代换为一行的空白行
-v或–show-nonprinting
4几个有意思的例子
清空档案内容
1.$cat/dev/null > /home/melody/workspace/qk.c
此为清空/home/melody/workspace/qk.c
档案内容
在文件中添加行,可以是多行。覆盖原有内容。
2.$ cat <<ABDCEFG> qk.txt这里的ABCDEFG可以换,表示的文件结束符,参见下例子:
melody@melody:~/workspace$cat <<khs> op.txt
>j
>khs
melody@melody:~/workspace$cat <<e> op.txt
>hello
>e
melody@melody:~/workspace$cat op.txt
hello
在文件中添加行,可以是多行。不覆盖原有内容。”追加”
3.$cat <<ABDCEFG>>qk.txt这里的ABCDEFG可以换,表示的文件结束符,参见下例子:
melody@melody:~/workspace$cat <<khs>> op.txt
>nice to meet you
>bye
>khs
melody@melody:~/workspace$cat op.txt
catop.txt
niceto meet you
bye
melody@melody:~/workspace$cat <<e>> op.txt
>see you again
>e
melody@melody:~/workspace$cat op.txt
catop.txt
niceto meet you
bye
seeyou again