萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux cat 指令顯示隱藏字元完整教學(-A/-T/-E 參數詳解)

一般文字編輯器會隱藏控制字元(Tab、換行、Ctrl 字元等),導致除錯困難。cat 指令配合參數可將不可見字元視覺化,快速定位格式問題。本文說明 -A、-T、-E 參數差異與實際輸出對照。

cat 顯示隱藏字元示意

建立測試檔案(含特殊字元)


printf 'testing\012\011\011testing\014\010\012more testing\012\011\000\013\000even more testing\012\011\011\011\012' > /tmp/testing.txt

包含:換行(\n/\012)、Tab(\t/\011)、換頁(\f/\014)、退格(\b/\010)、空字元(\0/\000)、CR(\r/\013)。

各編輯器顯示差異

工具顯示結果
cat (無參數)僅顯示可列印字元,控制字元解析為實際動作(換行、Tab 跳格)
nano / vim以符號顯示:^I(Tab)、^L(換頁)、^H(退格)、^@(空字元)、^K(VT)、^M(CR)

cat 參數詳細對照

-T:顯示 Tab 為 ^I


$ cat -T /tmp/testing.txt
testing
^I^Itesting
more testing
^I
even more testing
^I^I^I

-E:顯示行尾結束符 $


$ cat -E /tmp/testing.txt
testing$
testing$
$
more testing$
even more testing$
$

-A:顯示**所有**不可見字元(等同 -vET)


$ cat -A /tmp/testing.txt
testing$
^I^Itesting^L^H$
more testing$
^I^@^K^@even more testing$
^I^I^I$

符號對照表

符號代表字元ASCII 碼鍵盤輸入
^ITab (HT)0x09 / 011Tab / Ctrl+I
^MCR (Carriage Return)0x0D / 013Ctrl+M
^JLF (Line Feed)0x0A / 012Ctrl+J
^LFF (Form Feed)0x0C / 014Ctrl+L
^HBS (Backspace)0x08 / 010Ctrl+H
^@NUL (Null)0x00 / 000Ctrl+@ / Ctrl+Space
^KVT (Vertical Tab)0x0B / 013Ctrl+K
$行尾 (僅 -E/-A 顯示)--

實用組合技


# 檢查 Windows (CRLF) vs Unix (LF) 換行格式
cat -A file.txt | head -20

# 找出檔案中的 Tab 混用空格縮排
cat -T file.py | grep -n '^I'

# 管線傳給 less 翻頁檢視
cat -A large_file.log | less

善用 cat -A 快速診斷換行格式混雜、縮排不一、殘留控制字元等隱性問題,是 Shell 腳本除錯的利器。

copyright © 萬盛學電腦網 all rights reserved