溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux中cat命令的作用是什么

發(fā)布時(shí)間:2021-03-12 16:36:17 來源:億速云 閱讀:828 作者:Leah 欄目:系統(tǒng)運(yùn)維

這篇文章給大家介紹linux中cat命令的作用是什么 ,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

cat:查看文件的內(nèi)容、連接文件、創(chuàng)建一個(gè)或多個(gè)文件和重定向輸出到終端或文件 用法:cat [選項(xiàng)] [文件]

1. $ cat hello.txt

顯示hello.txt文本文件中的內(nèi)容

2. $ cat -n file

-n選項(xiàng),可以顯示文件的內(nèi)容和行號(hào)

3. $ cat -b file

-b選項(xiàng),與-n類似,但只標(biāo)識(shí)非空白行的行號(hào)(空白行仍顯示)

4. $ cat -e file

-e選項(xiàng),將在每一行的末尾顯示“$”字符,在需要將多行內(nèi)容轉(zhuǎn)換成一行時(shí)非常有用。

5. $ cat

只輸入cat命令的話,它只是接收標(biāo)準(zhǔn)輸入的內(nèi)容并在標(biāo)準(zhǔn)輸出中顯示,所以在輸入一行并按回車后會(huì)在接下來的一行顯示相同的內(nèi)容。

如:$ cat

hello world!

hello world!

$

重定向的話:

$ cat >hello

hello world!

(ctrl+D組合鍵退出,輸入的內(nèi)容 hello world! 會(huì)寫入到文件hello中)

$ cat hello

hello world!

$

重定向操作符有兩個(gè): >和>>,前者是內(nèi)容覆蓋,后者是在文件的最后追加。

6. 連接多個(gè)文件的內(nèi)容到一個(gè)新文件

$ cat test test1 > test2

$ cat test2

結(jié)果將顯示test和test1中的內(nèi)容。

以下是詳解

1.命令格式:

cat [選項(xiàng)] [文件]...

2.命令功能:

cat主要有三大功能:

1.一次顯示整個(gè)文件:cat filename
2.從鍵盤創(chuàng)建一個(gè)文件:cat > filename 只能創(chuàng)建新文件,不能編輯已有文件.
3.將幾個(gè)文件合并為一個(gè)文件:cat file1 file2 > file

3.命令參數(shù):

-A, --show-all 等價(jià)于 -vET
-b, --number-nonblank 對(duì)非空輸出行編號(hào)
-e 等價(jià)于 -vE
-E, --show-ends 在每行結(jié)束處顯示 $
-n, --number 對(duì)輸出的所有行編號(hào),由1開始對(duì)所有輸出的行數(shù)編號(hào)
-s, --squeeze-blank 有連續(xù)兩行以上的空白行,就代換為一行的空白行
-t 與 -vT 等價(jià)
-T, --show-tabs 將跳格字符顯示為 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

4.使用實(shí)例:

實(shí)例一:把 log2012.log 的文件內(nèi)容加上行號(hào)后輸入 log2013.log 這個(gè)文件里

命令:

cat -n log2012.log log2013.log

輸出:

代碼如下:


[root@localhost test]# cat log2012.log
2012-01
2012-02
======[root@localhost test]# cat log2013.log
2013-01
2013-02
2013-03
======[root@localhost test]# cat -n log2012.log log2013.log
 1  2012-01
 2  2012-02
 3
 4
 5  ======
 6  2013-01
 7  2013-02
 8
 9
 10  2013-03
 11  ======[root@localhost test]#



說明:

實(shí)例二:把 log2012.log 和 log2013.log 的文件內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 log.log 里。

命令:

cat -b log2012.log log2013.log log.log
輸出:

代碼如下:


[root@localhost test]# cat -b log2012.log log2013.log log.log
1  2012-01
2  2012-02</p> <p>     3  ======
4  2013-01
5  2013-02</p> <p>     6  2013-03
7  ======[root@localhost test]#

實(shí)例三:把 log2012.log 的文件內(nèi)容加上行號(hào)后輸入 log.log 這個(gè)文件里
命令:
輸出:

代碼如下:


[root@localhost test]# cat log.log
[root@localhost test]# cat -n log2012.log > log.log
[root@localhost test]# cat -n log.log
1  2012-01
2  2012-02
3
4
5  ======
[root@localhost test]#

實(shí)例四:使用here doc來生成文件
輸出:

代碼如下:


[root@localhost test]# cat >log.txt <<EOF
> Hello
> World
> Linux
> PWD=$(pwd)
> EOF
[root@localhost test]# ls -l log.txt
-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
[root@localhost test]# cat log.txt
Hello
World
Linux
PWD=/opt/soft/test
[root@localhost test]#

說明:
注意粗體部分,here doc可以進(jìn)行字符串替換。

備注:
tac (反向列示)
命令:
tac log.txt
輸出:

代碼如下:


[root@localhost test]# tac log.txt
PWD=/opt/soft/test
Linux
World
Hello

說明:
tac 是將 cat 反寫過來,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行連續(xù)顯示在螢?zāi)簧?,?tac 則是由最后一行到第一行反向在螢?zāi)簧巷@示出來!

注:在awk命令之后,沒有太多復(fù)雜命令,都是一些基礎(chǔ)命令。

說明:

cat,是單詞 concatenate 的縮寫, 把文件的內(nèi)容輸出到stdout.當(dāng)與重定向操作符 (> 或
>>結(jié)合使用時(shí), 一般都是用來將多個(gè)文件連接起來.

用法:

1. $cat file1 file2 file3
2. 不僅可以從文件中讀取內(nèi)容并且拼接,還能從標(biāo)準(zhǔn)輸入流中讀取

例如:$echo 'some content' |  cat - file.txt

解釋:這里的 - 就代表了 'some content' 的臨時(shí)文件,也就是輸入流

實(shí)例:

1. $cat cat.txt

打印了cat.txt的所有內(nèi)容

2.$cat cat.txt | less

查看cat.txt, 加入less以后一頁(yè)一屏幕,具體再以后less,more命令中介紹

3.$cat -n cat.txt

每行前標(biāo)注行號(hào),包括空白行

4.$cat -b cat.txt

非空白行前標(biāo)注行號(hào)

解讀--help

用法:cat [選項(xiàng)]... [文件]...
將[文件]或標(biāo)準(zhǔn)輸入組合輸出到標(biāo)準(zhǔn)輸出。

  -A, --show-all           等于-vET
   -b, --number-nonblank    對(duì)非空輸出行編號(hào)
  -e                       等于-vE
   -E, --show-ends          在每行結(jié)束處顯示"$"
   -n, --number             對(duì)輸出的所有行編號(hào)
  -s, --squeeze-blank      不輸出多行空行
  -t                       與-vT 等價(jià)
  -T, --show-tabs          將跳格字符顯示為^I
   -u                       (被忽略)
   -v, --show-nonprinting   使用^ 和M- 引用,除了LFD和 TAB 之外
      --help        顯示此幫助信息并退出
      --version        顯示版本信息并退出

如果沒有指定文件,或者文件為"-",則從標(biāo)準(zhǔn)輸入讀取。

示例:
  cat f - g  先輸出f 的內(nèi)容,然后輸出標(biāo)準(zhǔn)輸入的內(nèi)容,最后輸出g 的內(nèi)容。
  cat        將標(biāo)準(zhǔn)輸入的內(nèi)容復(fù)制到標(biāo)準(zhǔn)輸出。

解讀:

1. cat &ndash;s file.txt

如果有一個(gè)文件有這樣的格式:

 line1

#空行
line2 file2

用到這個(gè)命令

cat更多與其他命令結(jié)合,自身沒有太復(fù)雜的內(nèi)容,要是無聊,試試cat &ndash;A cat.txt,會(huì)有難忘的回憶。

 相關(guān)命令:

cat的親家一般是sed,tr這種命令

如:

$cat file|sed 's/old/new/g'

顯示file文件,并且將old 轉(zhuǎn)換成new,不修改原文件

簡(jiǎn)略版:

cat主要有三大功能:
1.一次顯示整個(gè)文件。$ cat filename
2.從鍵盤創(chuàng)建一個(gè)文件。$ cat > filename  
   只能創(chuàng)建新文件,不能編輯已有文件.
3.將幾個(gè)文件合并為一個(gè)文件: $cat file1 file2 > file

參數(shù):
-n 或 --number 由 1 開始對(duì)所有輸出的行數(shù)編號(hào)
-b 或 --number-nonblank 和 -n 相似,只不過對(duì)于空白行不編號(hào)
-s 或 --squeeze-blank 當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
-v 或 --show-nonprinting
例:
把 textfile1 的檔案內(nèi)容加上行號(hào)后輸入 textfile2 這個(gè)檔案里
cat -n textfile1 > textfile2


把 textfile1 和 textfile2 的檔案內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3

test.txt文件扔進(jìn)垃圾箱,賦空值test.txt
cat /dev/null > /etc/test.txt  

 詳細(xì)點(diǎn)的:

cat 是一個(gè)文本文件查看和連接工具。查看一個(gè)文件的內(nèi)容,用cat比較簡(jiǎn)單,就是cat 后面直接接文件名。

比如:

de>[root@localhost ~]# cat /etc/fstabde>

為了便于新手弟兄靈活掌握這個(gè)工具,我們多說一點(diǎn)常用的參數(shù);


1.0 cat 語(yǔ)法結(jié)構(gòu);

de>cat [選項(xiàng)] [文件]...de>

-A, --show-all 等價(jià)于 -vET
-b, --number-nonblank 對(duì)非空輸出行編號(hào)
-e 等價(jià)于 -vE
-E, --show-ends 在每行結(jié)束處顯示 $
-n, --number 對(duì)輸出的所有行編號(hào)
-s, --squeeze-blank 不輸出多行空行
-t 與 -vT 等價(jià)
-T, --show-tabs 將跳 字符顯示為 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 顯示此幫助信息并離開


1.1 cat 查看文件內(nèi)容實(shí)例;

de>[root@localhost ~]# cat /etc/profile    注:查看/etc/目錄下的profile文件內(nèi)容;
[root@localhost ~]# cat -b /etc/fstab   注:查看/etc/目錄下的profile內(nèi)容,并且對(duì)非空白行進(jìn)行編號(hào),行號(hào)從1開始;
[root@localhost ~]# cat -n /etc/profile    注:對(duì)/etc目錄中的profile的所有的行(包括空白行)進(jìn)行編號(hào)輸出顯示;
[root@localhost ~]# cat  -E /etc/profile     注:查看/etc/下的profile內(nèi)容,并且在每行的結(jié)尾處附加$符號(hào);de>

cat 加參數(shù)-n 和nl工具差不多,文件內(nèi)容輸出的同時(shí),都會(huì)在每行前面加上行號(hào);

de>[root@localhost ~]# cat -n /etc/profile
[root@localhost ~]# nl  /etc/profilede>

cat 可以同時(shí)顯示多個(gè)文件的內(nèi)容,比如我們可以在一個(gè)cat命令上同時(shí)顯示兩個(gè)文件的內(nèi)容;

de>[root@localhost ~]# cat /etc/fstab /etc/profilede>

cat 對(duì)于內(nèi)容極大的文件來說,可以通過管道|傳送到more 工具,然后一頁(yè)一頁(yè)的查看;

de>[root@localhost ~]# cat /etc/fstab /etc/profile | morede>


1.2 cat 的創(chuàng)建、連接文件功能實(shí)例;


cat 有創(chuàng)建文件的功能,創(chuàng)建文件后,要以EOF或STOP結(jié)束;

de>[root@localhost ~]# cat >  linuxsir.org.txt  << EOF  注:創(chuàng)建linuxsir.org.txt文件;
> 我來測(cè)試 cat 創(chuàng)建文件,并且為文件輸入內(nèi)容;       注:這是為linuxsir.org.txt文件輸入內(nèi)容;
> 北南南北 測(cè)試;                   注:這是為linuxsir.org.txt文件輸入內(nèi)容;
> EOF   注:退出編輯狀態(tài);

[root@localhost ~]# cat linuxsir.org.txt  注:我們查看一下linuxsir.org.txt文件的內(nèi)容;

我來測(cè)試 cat 創(chuàng)建文件,并且為文件輸入內(nèi)容;
北南南北 測(cè)試;de>

cat 還有向已存在的文件追加內(nèi)容的功能;

de>[root@localhost ~]# cat  linuxsir.txt 注:查看已存在的文件linuxsir.txt 內(nèi)容;
I am BeiNanNanBei From LinuxSir.Org .    注:內(nèi)容行
我正在為cat命令寫文檔


[root@localhost ~]# cat >> linuxsir.txt << EOF   注:我們向linuxsir.txt文件追加內(nèi)容;
> 我來測(cè)試cat向文檔追加內(nèi)容的功能;       注:這是追回的內(nèi)容
> OK?
> OK~
> 北南 呈上
> EOF   注:以EOF退出;


[root@localhost ~]# cat linuxsir.txt  注:查看文件內(nèi)容,看是否追回成功。
I am BeiNanNanBei From LinuxSir.Org .
我正在為cat命令寫文檔

我來測(cè)試cat向文檔追加內(nèi)容的功能;  
OK?
OK~
北南 呈上de>


cat 連接多個(gè)文件的內(nèi)容并且輸出到一個(gè)新文件中;

假設(shè)我們有sir01.txt、sir02.tx和sir03.txt ,并且內(nèi)容如下;

de>[root@localhost ~]# cat sir01.txt  
123456
i am testing

[root@localhost ~]# cat sir02.txt
56789
BeiNan Tested

[root@localhost ~]# cat sir03.txt
09876
linuxsir.org testingde>

我想通過cat 把sir01.txt、sir02.txt及sir03.txt 三個(gè)文件連接在一起(也就是說把這三個(gè)文件的內(nèi)容都接在一起)并輸出到一個(gè)新的文件sir04.txt 中。

注意:其原理是把三個(gè)文件的內(nèi)容連接起來,然后創(chuàng)建sir04.txt文件,并且把幾個(gè)文件的內(nèi)容同時(shí)寫入sir04.txt中。特別值得一提的是,如果您輸入到一個(gè)已經(jīng)存在的sir04.txt 文件,會(huì)把sir04.txt內(nèi)容清空。

de>[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt

[root@localhost ~]# more sir04.txt
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testingde>

cat 把一個(gè)或多個(gè)已存在的文件內(nèi)容,追加到一個(gè)已存在的文件中

de>[root@localhost ~]# cat sir00.txt
linuxsir.org forever

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt

[root@localhost ~]# cat sir00.txt
linuxsir.org forever
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testingde>

關(guān)于linux中cat命令的作用是什么 就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI