linux每日命令(11):cat命令

聽風。發表於2018-11-02

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 則是由最後一行到第一行反向在螢幕上顯示出來!

相關文章