什麼是 Linux 中的 CAT 命令以及如何使用它
該cat
命令是 Linux 最基本的文件組合方式。它是 conCATenation 的縮寫,但這不僅僅是將一個文件複製粘貼到另一個文件旁邊。
CAT 命令的基本格式
這是您通常使用cat
命令的方式:
cat file1 file2 file3 > output
將文件並排附加的順序基於您在命令中編寫文件的順序。在此示例中,當您打開“輸出”文件時,“file1”的內容後面將是“file2”,然後是“file3”,依此類推。
只要您的文件系統能夠支持輸出的最終大小,您就可以添加任意數量的文件。
此外,就像在所有 Linux 終端命令中一樣,您需要在添加文件擴展名時包含它們。例如,如果您正在處理JSON 文件併計劃將其中兩個文件組合在一起,您需要鍵入它這:
cat file1.json file2.json > combined_file.json
沒有輸出部分的 CAT
對於cat
,輸出部分是可選的。刪除這部分會將每個文件的內容打印到終端中。
您也可以對單個文件執行此操作。請記住,您無法像在文本編輯器上編輯 DOC 或 TXT 文件那樣編輯此處的內容。該cat
命令變得更像是文本文件查看器而不是編輯器。
CAT 命令標誌
每當您在 Linux 上使用 CAT 時,您都可以使用六個標誌:
-
-n
從 1 開始枚舉每一行。 -
-b
僅枚舉包含字符的行。 -
-s
將多個連續的空行壓縮為一個空行。 -
-e
標記每一行的結尾。 -
-q
如果 CAT 找不到輸入文件,則不顯示消息。 -
-t
將製表符顯示為^I
.
我們將介紹每一個的工作原理以及如何使用它們。
使用 -n 標誌
該-n
標誌每行枚舉一個文件的內容並將其打印在終端上。它不編輯文件本身。
cat -n file1.txt
但是您仍然可以通過這樣做來保存輸出(帶有枚舉):
cat -n file1.txt > file2.txt
即枚舉“file1.txt”的內容,保存到“file2.txt”。
您還可以一起枚舉多個文件。該cat
命令將在第一個文件結束後繼續計數。如果第一個文件以 33 結尾,則下一個文件將從 34 開始,依此類推。
使用 -b 標誌
該標誌的問題-n
在於它還枚舉了空行。如果您的文件包含大量用於佈局或可讀性的空白,-b
則您將需要該標誌。
cat -b file1.txt
標誌的格式-b
與標誌的格式相同-n
。此外,如果將這兩個一起使用,則無論您如何排序,該-b
標誌都會覆蓋該標誌。-n
使用 -s 標誌
當文件中有大量空白時,該-s
標誌是另一個方便的命令標誌。cat
它的工作原理是將所有重複的空格減少為一個,從而提高可讀性。
cat -s file2.txt
此標誌在合併之前至少查找 2 個連續的空行。如果您的文件在兩個填充行之間包含一個空行,它將跳過該空行並尋找下一個。
使用 -e 標誌
該-e
標誌找到每行的結尾並$
在每行的末尾添加一個。
cat -e file1.txt
當您使用正則表達式或 regex 時,此標誌可以更輕鬆地處理您的文本文件。您可以讓額外的腳本或程序讀取已保存文件的內容並使用正則表達式檢查結尾。
請記住,該標誌還在每個空行的末尾-e
添加了一個,因此您可能希望將它與它一起使用以使內容看起來更清晰。$
-s
使用 -t 標誌
flag-t
與 flag 類似-e
,但會尋找“製表符”,並將其替換為^I
. 這個標誌的優點在於它知道如何區分“製表符”和“雙空格”字符。
cat -t file1.txt > file2.txt
這意味著如果您在標誌旁邊使用-n
或標誌,它將按原樣讀取空格字符並保留它們。如果您添加大量空格來模仿“製表符”字符,情況也是如此。-b
-t
Linux CAT 命令使用
cat
僅當您嘗試逐行合併文本文件時才應使用該命令。不要期望該cat
命令將兩行文本合併成一行。
另一方面,當您嘗試清理文本文件以供其他腳本處理時,您會發現它有很多用處。、、和標誌都非常有用,可以節省您為這些標誌已經做的任何事情編寫自己的腳本的時間-e
。-t
-b
-s
與必須一直使用 Nano 編輯器相比,它還有助於更輕鬆地查看文本文件。
經常問的問題
如果我在視頻文件上使用 CAT 命令會怎樣?
視頻文件包含一個叫做“標題”的東西。這是一條顯示視頻編碼方式的信息。如果您使用 CAT 命令連接視頻,您將得到一個在編碼視頻數據之間夾有標題信息的視頻。大多數觀眾閱讀此文後會認為您的文件已損壞。您最好使用FFmpeg等不同的工具來處理視頻文件。
我可以對來自不同文件夾的文件使用 Linux CAT 命令嗎?
當您使用命令組合文件夾中的文件時,您可以將文件名視為文件夾路徑cat
。這樣,您可以像這樣將桌面中的文件與照片中的另一個文件合併cat Desktop/file1.txt Photos/Photos.txt >> output.txt
:
當我使用現有文件的文件名作為 CAT 命令的輸出時會發生什麼?
根據您使用的是>
or >>
,它將覆蓋內容或將內容附加到現有文件。該>>
命令附加到文件或創建文件(如果不存在)。如果文件存在,該>
命令將覆蓋該文件;如果不存在,則創建該文件。
為避免任何猜測,最好始終將輸出保存到具有唯一文件名的不存在的文件中。
發佈留言