| 參數 | 長參數 | 說明 |
| -n | --number | 所有行編號 (含空行) |
| -b | --number-nonblank | 非空行編號 |
| -s | --squeeze-blank | 連續空行壓縮為單一空行 |
| -E | --show-ends | 行尾顯示 $ |
| -T | --show-tabs | Tab 顯示為 ^I |
| -v | --show-nonprinting | 控制字元顯示為 ^M 等 |
| -A | --show-all | 等同 -vET |
實戰範例
範例檔案
# log2012.log
2012-01
2012-02
=======
# log2013.log
2013-01
2013-02
2013-03
=======
1. 合併並編號輸出到新檔
cat -n log2012.log log2013.log > log_all.log
2. 非空行編號並附加到既有檔
cat -b log2012.log log2013.log >> log.log
3. 重導向建立檔案
cat -n log2012.log > log.log
4. Here Document 建立含變數展開的檔案
cat > log.txt <
注意: < 會展開變數,<<'EOF' 則不展開。
5. 顯示不可見字元
cat -A /etc/passwd
# 輸出範例: root:x:0:0:root:/root:/bin/bash$
反向輸出:tac
tac log.txt
# 從最後一行輸出到第一行
進階技巧
- 大檔案分頁閱讀:
cat large.log | less 或直接 less large.log
- 二進位檔案檢視:
cat -v binary_file | head 避免終端機亂碼
- 合併並去重:
cat file1 file2 | sort -u > merged
- 行號加上檔名前綴:
cat -n file1 file2 | sed 's/^/[FILE] /'
小結
cat 是文字處理的起點。熟練運用 -n/-b/-s/-A 搭配重導向、管線、Here Document,可完成檔案檢視、合併、建立、格式化等日常 80% 操作。大檔案請改用 less/head/tail 避免記憶體壓力。
copyright ©
萬盛學電腦網 all rights reserved