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