概述
tr (translate) 顧名思義,扮演著「翻譯」或「替換」字元的角色。例如,它專門用於簡單的字元級轉換操作,如將小寫字母轉換為大寫字母、將特定字元替換為其他字元、或將換行符轉換為空格等。與 `sed` 或 `awk` 支援行級的複雜模式匹配不同,`tr` 在字元級處理上非常快速且高效。
主要特點
tr 指令的主要特點如下:
- 以字元為單位轉換或刪除文字。
- 僅透過標準輸入 (stdin) 接收資料。
- 不使用正規表達式 (regular expression)。
- 廣泛與管道符號 (`|`) 結合使用,以處理其他指令的輸出結果。
tr 的基本語法
tr 指令基本上接收兩個字串 (set) 作為參數。
- `tr 'set1' 'set2'`: 將 `set1` 中的字元以 1:1 對應方式轉換為 `set2` 中的字元。
- `tr -d 'set1'`: 刪除 `set1` 中的所有字元。
主要選項
我們根據用途將常用的 tr 指令選項進行了分組。
1) 功能選項
2) 特殊字元與集合
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`tr` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
透過 tr 指令的各種使用範例來熟悉其功能。
將小寫字母轉換為大寫字母
echo 'hello world' | tr '[:lower:]' '[:upper:]'
將從標準輸入接收到的小寫字母轉換為大寫字母並輸出。
刪除特定字元
echo 'hello world' | tr -d ' '
從文字中刪除所有空格 (` `)。
將換行符轉換為空格
cat file.txt | tr '\n' ' '
將檔案內容中的換行符 (`\n`) 轉換為空格 (` `) 並單行輸出。
壓縮重複空格
echo 'hello world' | tr -s ' '
將連續重複的空格壓縮為單一空格。`-s` 選項執行壓縮重複字串的功能。
將大寫字母轉換為小寫字母
echo 'HELLO WORLD' | tr 'A-Z' 'a-z'
將從標準輸入接收到的大寫字母轉換為小寫字母並輸出。
提示與注意事項
整理了使用 tr 指令時需要注意的事項。
提示
- tr 不直接接收檔名作為參數。您必須透過 `cat` 或 `echo` 等指令將文字傳遞給標準輸入。
- 在將字串作為參數傳遞時,建議使用單引號 (`'`) 以防止 shell 解釋特殊字元。
- 與 `sed` 或 `awk` 相比,`tr` 的功能雖然簡單,但其優點在於字元級轉換操作中速度要快得多。