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