你可能聽說過強大實用的 tr 文本處理命令
tr命令是一個用于轉換或刪除字符的實用工具echo "hello" | tr 'a-z' 'A-Z'echo "hello" | tr 'a-z' 'A-Z'。它可以在輸入中對字符進行替換、刪除或壓縮,并將結果輸出到標準輸出。tr命令的基本語法如下:
tr [OPTION]... SET1 [SET2]
SET1表示要進行替換或刪除的字符集合,SET2表示替換的目標字符集合。如果省略SET2,則tr命令將刪除SET1中的字符。
例如,要將輸入中的小寫字母轉換為大寫字母:
echo "hello" | tr 'a-z' 'A-Z'
最終輸出HELLO。
基本字符操作
(1) 替換字符
echo "Hello, World" | tr 'Hello' 'No Hello'
把字符串中的"Hello"替換為"No Hello",輸出結果為No Hello, World
(2) 字符范圍替換
echo "Hello" | tr 'H-l' 'X'
把字符串中的"Hello"中'H-l'替換為"X",輸出結果為XXXXo
(3) 多字符替換
echo "Hello" | tr 'Ho' 'QWERT'
把字符串中的"Hello"中'H'替換為"Q",'o'替換為'W',輸出結果為QellW
(4) 刪除字符
echo "要刪除的字符" | tr -d "要刪除的字符"
要刪除字符串中的所有空格,可以使用以下命令:
echo "Hello World" | tr -d " "
輸出結果HelloWorld。
字符集轉換
(1) 大小寫轉換
echo "Hello, World!" | tr '[:lower:]' '[:upper:]'
把字符串中的小寫字母轉換為大寫字母,輸出結果為HELLO, WORLD!
(2) 轉換字符集
echo "Hello, World!" | tr -t 'llo' 'ooo'
輸出結果Heooo, World!。
去重和壓縮字符
(1) 去重字符
echo "hello" | tr -s 'l'
將字符串"hello"中的重復字符"l"去重,輸出結果為helo。
(2) 壓縮空白字符
echo "he ll o" | tr -s ' ' # 壓縮連續的空格為一個空格
將連續的空格字符壓縮為一個空格字符,輸出結果為he ll o。
轉義字符
(1) 轉義換行符
echo "Hello\nWorld" | tr '\n' ','
注意圖中輸出末尾,%是由于命令行中按回車執行指令,也相當于替換了一個\n,%是命令行的下一行輸出。
把Hello\nWorld的換行符替換為逗號,輸出結果為Hello,World。
(2) 轉義制表符
echo "Hello\tWorld" | tr '\t' '-'
把Hello\tWorld的制表符替換為-,輸出結果為Hello-World。