cat — 顯示、連接與建立文字檔

顯示檔案內容,或將多個檔案連接後輸出。

語法

cat [選項] [檔案...]

常用選項

選項 說明 範例
-n, --number 顯示所有行的行號 cat -n file.txt
-b, --number-nonblank 只對非空行顯示行號 cat -b file.txt
-A, --show-all 顯示所有不可見字元(等同 -vET) cat -A file.txt
-E, --show-ends 在每行結尾顯示 $(標示換行符位置) cat -E file.txt
-T, --show-tabs 將 Tab 顯示為 ^I cat -T file.txt
-v, --show-nonprinting 顯示不可列印字元(除 Tab 和換行) cat -v file.txt
-s, --squeeze-blank 將連續多個空白行壓縮為一個 cat -s file.txt

使用範例

範例 1:顯示檔案內容

最基本的用法,輸出整個檔案內容到終端機。

$ cat /etc/hostname
my-server
範例 2:顯示行號

使用 -n 在每行前面加上行號,方便程式碼定位。

$ cat -n script.sh
     1	#!/bin/bash
     2	
     3	echo "Hello, World!"
範例 3:連接多個檔案

將多個檔案依序連接後輸出,可搭配重導向合併檔案。

$ cat header.txt content.txt footer.txt > document.txt
範例 4:搭配管線傳遞內容

作為管線起點,將檔案內容傳給 grep、awk 等工具處理。

$ cat /var/log/syslog | grep "error" | tail -20
May 20 09:12:33 host kernel: error in driver
範例 5:建立簡短的文字檔

不指定來源檔案時,cat 讀取標準輸入。搭配重導向可快速建立檔案。按 Ctrl+D 結束輸入。

$ cat > notes.txt
(輸入內容後按 Ctrl+D 結束)
對於多行文字,建議改用 here document(cat << EOF ... EOF)更為直觀。
範例 6:顯示不可見字元

使用 -A 可顯示 Tab(^I)和行尾($),有助於除錯 Windows 與 Unix 換行符差異。

$ cat -A mixed-endings.txt
line one$
$
line two with windows endings^M$

常見錯誤與排錯

cat: filename: No such file or directory
原因
指定的檔案不存在。
解法
確認檔案路徑與名稱是否正確,注意大小寫。
cat: filename: Is a directory
原因
嘗試用 cat 顯示目錄。
解法
改用 ls 列出目錄內容,或指定目錄內的具體檔案。

延伸閱讀