Linux tr 命令
介紹
tr (translate) 命令是一個 Linux 實用程式,允許您對文字輸入執行各種轉換。無論您需要更改大小寫、刪除重複字元、刪除字元、設定補集還是刪除換行符,tr 都能勝任。在本文中,我們將探討 tr 命令提供的各種選項,並向您展示如何使用它們來轉換文字。
tr 命令的語法
‘tr’ 命令的基本語法如下:
$ tr SET1 SET2 < inputfile
其中:
SET1 是要被 SET2 中相應字元替換的一組字元。
SET2 是一組替換 SET1 中相應字元的字元。
input file 是要處理的輸入檔案,可以省略並替換為來自 STDIN(標準輸入)的輸入。
請注意,“SET1”和“SET2”中的字元可以用多種方式指定,包括單個字元、字元範圍和用於轉換的特殊字元。字元也可以用八進位制或十六進位制表示法指定。
例如,tr 命令將輸入字串 "Hello World" 中的大寫字元替換為它們的小寫等價物。SET1 中的字元指定為 ‘H’,SET2 中的字元指定為 ‘Y’。(此例說明略有不妥,應為更準確的示例)
$ echo "Hello World" | tr H Y Yello world
使用 Linux 中的 tr 命令更改字元大小寫
tr 可以透過三種不同的方式更改輸入文字的大小寫:透過指定要轉換的確切字元、透過指定要轉換的字元範圍以及透過指定解釋的字串。
向 tr 命令指定確切字元
使用此選項,您可以指定要轉換的輸入文字中的哪些字元。tr 命令將 SET1 的字元替換為 SET2 的字元。例如:
$ echo "Hello World" | tr [A-Z] [a-z] hello world
另一種使用 tr 更改字元大小寫的方法是指定字元範圍。這允許 tr 更改指定範圍內的任何字元的大小寫。以下示例顯示如何將大寫字元轉換為小寫:
$ echo "Hello World" | tr [A-Z] [a-z] hello world
向 tr 命令指定字元範圍
透過指定解釋的序列來匹配和轉換字元。例如,小寫字元序列是 [:lower:],大寫字元序列是 [:upper:]。指定這兩個序列會告訴 tr 比較和轉換字元的大小寫:
$ echo "HELLO WORLD" | tr [:upper:] [:lower:] hello world
使用 Linux 中的 tr 命令刪除重複字元
‘-s’ 選項對 tr 很有用,因為它可以將重複的字元壓縮為單個例項。此選項在將空格轉換為製表符或換行符並且輸入文字包含多個連續空格時尤其有用。例如,以下輸入包含多個空格:
$ echo "Hello World" Hello World
將這些空格轉換為製表符大致會得到:
$ echo "Hello World" | tr ' ' '\t' Hello World
為了避免輸出中出現多個製表符和空格,您可以使用 -s 選項:
$ echo "Hello World" | tr -s ' ' '\t' Hello World
使用 Linux 中的 tr 命令刪除字元
使用 -d 選項從輸入中刪除特定字元。在下面的示例中,tr 刪除字元 e 的每個例項:
$ echo "Hello World" | tr -d 'e' Hllo World
您還可以透過指定解釋的字串來刪除一組字元。例如,透過指定序列 [:digit:] 來刪除所有數字:
$ echo "Hello 123 World" | tr -d [:digit:] Hello World
補集
使用 ‘-c’ 選項來補充 SET1 中的字元。這意味著將刪除未在指定集合中的所有字元。在下面的示例中,我們刪除除數字以外的所有字元:
$ echo "Hello 123 World" | tr -c [:digit:] 123
使用 Linux 中的 tr 命令刪除變音符號
變音符號是新增到字母上的符號,例如重音符號,它們會改變字母的發音。序列 [=CHAR=] 可用於匹配與指定字元等效的所有字元。這對於從字元中刪除變音符號很有用。
例如,以下命令使用 tr 刪除字元的變音符號:
$ echo "résumé" | tr -d '[=e=]' rsum
使用 Linux 中的 tr 命令分別列印每個單詞
有時,逐行或在本例中逐詞列印檔案的內容可能很有用。tr 命令可以透過使用 -c 選項並將非字母數字字元替換為換行符來實現此目的。
以下是如何分別列印檔案每個單詞的示例:
$ cat file.txt | tr -c '[:alnum:]
' '[
*]'
結論
總之,tr 命令是用於轉換 Linux 上文字的多功能且強大的工具。它允許您執行各種操作,例如切換大小寫、刪除重複字元、刪除字元、補充集合、刪除換行符,重定向輸入,截斷集合,刪除變音符號,分別列印每個單詞以及將輸出儲存到檔案。本教程透過實際示例演示了這些功能,使您能夠清楚地瞭解如何使用 tr 命令。無論您是 Linux 新手還是高階使用者,這個工具都值得探索其多種用途。檢視其他 Linux 文字實用程式,如 sort 命令、無分頁終端或最佳 Linux 文字編輯器,以進一步增強您的知識和經驗。