cat指令常用來顯示檔案內容,或是將幾個檔案連結起來顯示,或是從標準輸入讀取內容並顯示。它常與重定向符號配合使用。 cat是Concatenate的縮寫。
Linux 有三個特別文件,分別
-標準輸入 即 STDIN , 在 /dev/stdin
一般指鍵盤輸入, shell裡代號是 0
-標準輸出 STDOUT, 在 /dev/stdout
一般指終端(terminal), 就是顯示器, shell裡代號是 1
-標準誤差 STDERR, 在 /dev/stderr
也是指終端機(terminal), 不同的是, 錯誤訊息送到這裡
shell裡代號是2
语法:cat [选项] [文件]
登入後複製
#短選項 | #長選項 | |
---|---|---|
##-A | --show-all | 等於-vET |
#-b | --number-nonblank | 對非空白輸出行編號 |
-e | 等於-vE | |
## -E | --show-ends | 在每行結束處顯示"$" |
-n | --number | 對輸出的所有行編號 |
-s | #--squeeze-blank | 不輸出多行空白行 |
將跳格字元顯示為^I
- -v
- --show-nonprinting
- #使用^ 和M- 引用,除了LFD和TAB 之外
输出文件内容 显示文件FILE的内容 cat FILE 显示文件FILE的内容加上行号,需要加上参数-n。行号从1开始。使用-n参数时,所有空行也会显示行号 cat -n FILE 忽略掉空行,用-b cat -b FILE 当遇到有连续两行以上的空白行,就代换为一行的空白行,可以使用-s参数 cat -s FILE 保存内容 将标准输入保存到文件FILE中,如果文件已经存在,则覆盖掉原来的 cat >FILE 将标准输入追加到文件FILE末尾 cat >>FILE 合并文件 将两个文件FILE1和FILE2的内容合并为一个文件FILE cat FILE1 FILE2 >FILE
登入後複製
- cat 使用實例
从标准输入创建文件 [root@web setup]# code>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 显示1.txt文本内容。标准输出 Hello Bash Linux [root@web setup]# cat <1.txt Hello Bash Linux [root@web setup]# 使用heredoc来生成文件 注意:粗体部分、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脚本中把文件内容加载到变量中 [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 ~]#
登入後複製- heredoc文件
< (內容) EOF
#EOF在這裡沒有特殊的意義,你可以使用FOE或OOO等(當然也不限制在三個字元或大寫字元)。
可以把EOF替換成其他東西,意思是把內容當作標準輸入傳給程
結合這兩個標識,即可避免使用多行echo指令的方式,並實現多行輸出的結果。
接下來,簡單描述幾個常見的使用方式及其作用:
cat <
cat >filename,建立文件,並把標準輸入輸出到filename檔案中,以ctrl d作為輸入。
cat >filename <# cat >test.sh < #!/bin/bash
> #you Shell script writes here.
> EOF
其他寫法
1、追蹤檔案
# cat <>test.sh
EOF#EOF在這裡沒有特殊的意義,你可以使用FOE或OOO等(當然也不限制在三個字元或大寫字元)。
可以把EOF替換成其他東西,意思是把內容當作標準輸入傳給程結合這兩個標識,即可避免使用多行echo指令的方式,並實現多行輸出的結果。
接下來,簡單描述幾個常見的使用方式及其作用:cat <
cat >filename,建立文件,並把標準輸入輸出到filename檔案中,以ctrl d作為輸入。
cat >filename <# cat >test.sh <
其他寫法
1、追蹤檔案
# cat <