cat命令的用途是連線檔案或標準輸入並列印。這個命令常用來顯示檔案內容,或者將幾個檔案連線起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。
一.命令格式:
cat [引數] [檔案]...
二.命令功能:
cat主要有三大功能:
1.一次顯示整個檔案:cat filename
2.從鍵盤建立一個檔案:cat > filename 只能建立新檔案,不能編輯已有檔案.
3.將幾個檔案合併為一個檔案:cat file1 file2 > file
三. 命令引數
引數 | 描述 |
---|---|
-n | –number , 由1開始對所有輸出的行數編號 |
-b | –number-nonblank, 和 -n 相似,只不過對於空白行不編號。 |
-s | –squeeze-blank,當遇到有連續兩行以上的空白行,就代換為一行的空白行。 |
-v | –show-nonprinting , 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
-E | –show-ends , 在每行結束處顯示 $ |
-T | –show-tabs,將 TAB 字元顯示為 ^I。 |
-A | –show-all , 等價於 -vET |
-e | 等價於 -vE |
-t | 與 -vT 等價 |
四. 使用例項
1. 將file1的文件內容覆蓋到file2中
命令:
不帶行號覆蓋內容
cat file1 > file2
帶行號覆蓋內容
cat -n file1 > file2
輸出:
hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat file2
hc@hc-virtual-machine:~/test$ cat file1 > file2
hc@hc-virtual-machine:~/test$ cat file2
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat -n file1 > file2
hc@hc-virtual-machine:~/test$ cat file2
1 我是file1的第一行
2 我是file1的第二行
2. 將file1的內容追加到file2的內容中
命令:
不帶行號追加
cat file1 >> file2
帶行號追加(空白行不加行號)
輸出:
hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat file2
我是file2的第一行
我是file2的第6行
hc@hc-virtual-machine:~/test$ cat file1 >> file2
hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat file2
我是file2的第一行
我是file2的第6行
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ cat -b file2 >> file1
hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
1 我是file2的第一行
2 我是file2的第6行
3 我是file1的第一行
4 我是file1的第二行
hc@hc-virtual-machine:~/test$
說明:
>是重新編輯內容,>> 是追加內容
3. 清空file1文件內容
命令:
cat /dev/null > file1
輸出:
hc@hc-virtual-machine:~/test$ cat file1
我是file1的第一行
我是file1的第二行
1 我是file2的第一行
2 我是file2的第6行
3 我是file1的第一行
4 我是file1的第二行
hc@hc-virtual-machine:~/test$ cat /dev/null > file1
hc@hc-virtual-machine:~/test$ cat file1
hc@hc-virtual-machine:~/test$
4. 倒序輸出file2中的內容
命令:
tac file2
輸出:
hc@hc-virtual-machine:~/test$ cat file2
我是file2的第一行
我是file2的第6行
我是file1的第一行
我是file1的第二行
hc@hc-virtual-machine:~/test$ tac file2
我是file1的第二行
我是file1的第一行
我是file2的第6行
我是file2的第一行
hc@hc-virtual-machine:~/test$
說明:
tac 是將 cat 反寫過來,所以他的功能就跟 cat 相反, cat 是由第一行到最後一行連續顯示在螢幕上,而 tac 則是由最後一行到第一行反向在螢幕上顯示出來!