cat-合併輸出多個檔案的內容

antwang發表於2019-01-21

cat 命令可以將檔案內容輸出在輸出端,或者將多個檔案合併輸出到輸出端。

語法

cat [OPTION]... [FILE]...
複製程式碼

可使用的option值可以通過 man cat 命令查閱,這裡不再贅述。

示例

假設你在當前目錄下有兩個檔案a.txt和b.txt。

// a.txt
a
aa
aaa
複製程式碼
// b.txt
b
bb
bbb
複製程式碼

例1 在終端上列印a.txt的內容。

[work@10-13-22 ant]$ cat a.txt
a
aa
aaa

複製程式碼

可以看到a.txt檔案的內容全部輸出到了終端上。

例2 合併輸出多檔案內容

有些場景,我們可能需要一次將多個檔案一塊輸出到終端上進行對比檢視,減少多個檔案之間的切換。

[work@10-13-22 ant]$ cat a.txt b.txt
a
aa
aaa
b
bb
bbb

複製程式碼

這個例子中,我們同時將ab中的內容一塊按照順序進行輸出。cat 命令可以同時指定多個檔案。

例3 將多個檔案內容合併儲存到新檔案

[work@10-13-22 ant]$ cat a.txt b.txt > c.txt
[work@10-13-22 ant]$ cat c.txt
a
aa
aaa
b
bb
bbb

複製程式碼

本示例中,我們將ab兩個檔案內容合併後,沒有直接在終端輸出,而是輸出到了c.txt

注:輸出至已存在的檔案,會覆蓋原有的內容。

例3 新增行號

[work@10-13-22 ant]$ cat -n a.txt
     1	a
     2	aa
     3	aaa
複製程式碼

通過使用 -n 選項,為輸出的內容新增行號,使內容的可讀性更強。

例3 新增行號

當檔案中存在大量連續的空行時,很影響檢視。使用 -s 選項可以將2行以上的空行合併為1行輸出。

為了方便演示,我們在 a.txt 中插入一些空行。

// a.txt
a



aa

aaa
複製程式碼

為了便於進行對比,先不合並空行:

[work@10-13-22 ant]$ cat -n a.txt
     1	a
     2	
     3	
     4	
     5	aa
     6	
     7	
     8	aaa
複製程式碼

加上-s選項:

[work@10-13-22 ant]$ cat -sn a.txt
     1	a
     2	
     3	aa	
     4
     5  aaa
複製程式碼

可以看到原來的多空行全部合併為了一個空行。

相關文章