cat(concatenate)是 Linux 系統中最基礎也最常用的文字處理指令之一。不僅能快速查看檔案內容,更能將多個檔案串接、重導向建立新檔,甚至搭配參數顯示特殊字元與行號。本文完整整理語法、參數與實戰範例,助你駕輕就熟掌握這把瑞士刀。

基本格式:cat [選項] [檔案]...
| 功能 | 指令範例 | 說明 |
|---|---|---|
| 一次顯示整個檔案 | cat filename | 適合小型檔案,大檔建議用 less/more |
| 從鍵盤建立新檔 | cat > filename | 輸入內容後按 Ctrl+D 結束,僅能建新檔 |
| 合併多個檔案 | cat file1 file2 > file | 將 file1、file2 內容順序寫入 file |
| 參數 | 長參數 | 功能 |
|---|---|---|
| -n | --number | 對所有輸出行編號(從 1 開始) |
| -b | --number-nonblank | 僅對非空白行編號 |
| -s | --squeeze-blank | 將連續多行空白行壓縮為單一空行 |
| -E | --show-ends | 每行結尾顯示 $ 符號 |
| -T | --show-tabs | 將 Tab 字元顯示為 ^I |
| -A | --show-all | 等同 -vET,顯示所有特殊字元 |
| -v | --show-nonprinting | 用 ^ 和 M- 顯示非列印字元(除 LFD、TAB) |
注意: -u 參數已被忽略,僅為相容性保留。
# 檢視原始檔案
cat log2012.log
# 2012-01
# 2012-02
cat log2013.log
# 2013-01
# 2013-02
# 2013-03
# 合併並加上行號
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
cat < EOF > bigfile.txt ... EOF(Here Document)cat file.log | grep "error" | less 篩選後分頁閱讀cat -A script.sh 檢查換行符、Tab 混用問題cat 不適合編輯現有檔案,請改用 sed、awk 或編輯器cat 會塞滿終端機緩衝區,建議改用 less 或 head/tail熟練運用 cat 的參數組合與重導向特性,能讓日常文字處理、日誌分析與腳本撰寫更加高效精準。
Linux 以其他使用者身分執行程式:runuser、su、sudo、systemd-run 四大工具對比與最佳實務
解決《UNIX 環境高級編程》範例缺少 apue.h 與 error.c 頭文件的編譯錯誤
at 指令單次排程教學:時間格式、atd 服務、常用參數、與 crontab 差異、實戰範例
Linux find -path -prune 進階應用:精準排除目錄與多路徑控制實戰技巧
Linux 自訂 History 輸出格式:加入時間戳、用戶名、永久生效設定
CentOS 编译安装 Lighttpd 1.4.x 完整步骤与配置部署
Linux 安裝配置 Vim IDE 完整指南:Vundle 外掛管理、基礎設定 (配色/縮排/自動儲存/括號匹配/摺疊/系統剪貼簿)、常用外掛推薦