cat命令的用途是鏈接文件或標準輸入並打印。這個命令經常使用來顯示文件內容,或者將幾個文件鏈接起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。code
cat [參數] [文件]...
cat主要有三大功能:文檔
1.一次顯示整個文件:cat filenametable
2.從鍵盤建立一個文件:cat > filename 只能建立新文件,不能編輯已有文件.class
3.將幾個文件合併爲一個文件:cat file1 file2 > filetest
參數 | 描述 |
---|---|
-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 等價 |
命令:file
不帶行號覆蓋內容引用
cat file1 > file2
帶行號覆蓋內容重定向
cat -n file1 > file2
輸出:tab
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的第二行
命令:文件
不帶行號追加
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$
說明:
>是從新編輯內容,>> 是追加內容
命令:
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$
命令:
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 則是由最後一行到第一行反向在屏幕上顯示出來!