阅读(729)

linux命令之cat简介

最后一次修改 2018年03月07日

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

cat的功能主要有:

    一次性显示整个文件:cat filename

    从键盘创建一个文件:cat > filename(只能创建一个新的文件,不能编辑一个已有的文件)

    将几个文件合并为一个文件:cat filen1 file2 > file

cat的具体命令格式为:cat 【-AbeEnstTuv】【--help】【--version】filename   (把文件串连接后传到基本输出到屏幕或者> filename的另一个文件)

具体参数:-n:number由1开始对所有输出的行数编号 

                -b:number nonblank和-n类似,只不过对于空白行不编号

                -s:squeeze blank当遇到有连续两行以上的空白行时,只显示一行空白

                -v:show nonprinting使用^和M-显示非打印字符但LFD和TAB除外

例如:cat -n linuxfile1 > linuxfile2:把linuxfile1的文件内容加上行号后输入到linufile2这个文件中。

       :cat -b linuxfile1 linuxfile2  >> linuxfile3:把linuxfile1和linuxfile2的文件内容加上行号(空白不加)然后将内容附加到linuxfile3里

        :cat /dev/null > /etc/test.txt:将test.txt文件放入黑洞中。(/dev/null:linux黑洞,经常用来删除丢弃文件)

在linux脚本中经常会用到 cat << EOF 语句(EOF:end of file文本结束符)但是EOF在这里是没有特殊含义的,可以任意替换成其他例如OOO(在这里也不限制字符,或者大小写)可以吧EOF替换成其他东西。其意思是把内容当作标准输入。结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。

看例子是最快的熟悉方法:
# cat << EOF > test.sh
> #!/bin/bash             #“shell脚本”
> #you Shell script writes here.
> EOF

结果:
引用# cat test.sh
#!/bin/bash
#you Shell script writes here.

可以看到,test.sh的内容就是cat生成的内容。
cat <<EOF >test.sh  内容 EOF  
---就是将内容写入test.sh,之前存在的内容会被覆盖掉。EOF可以换成其他符号比如EEE:cat <<EEE  >test.sh  内容 EEE 


追加文件
# cat << EOF >> test.sh  内容  EOF

---将内容追加到 test.sh 的后面,不会覆盖掉原有的内容

换一种写法
# cat > test.sh << EOF 内容  EOF
3、EOF只是标识,不是固定的

# cat << HHH > iii.txt
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH


这里的“HHH”就代替了“EOF”的功能。结果是相同的。
引用# cat iii.txt
sdlkfjksl
sdkjflk

asdlfj

非脚本中
如果不是在脚本中,我们可以用Ctrl-D输出EOF的标识

# cat > iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl-D

结果:
引用# cat iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk