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 列出目錄內容,或指定目錄內的具體檔案。