今天想跟大家介紹下1個很常用的指令-tr。這個命令可以用來替換字串、刪除指定字元以及將多個重複字元壓縮只剩一個,除此之外,該命令是支援管道的。從上面的功能介紹,大家應該可以感受到該指令功能非常的強大。
下面,來介紹下該指令:
tr [选项] 参数
常用選項如下:
-c 後接字元範圍,表示除這些字元之外的字元
-d 刪除指定字元
-s 將重複字元壓縮只剩下一個
下面透過幾個案例來學習如何使用該命令
字串替換
這個是最基本功能,沒有添加任何選項時,則表示字串替換,指令格式為:
tr 原字符串 需替换成的字符串
這裡,我們也常用到-符號,它表示連續的意思。以下來看案例:
# 字符串替换,将小写字母替换为大写字母 # echo hello,world | tr [a-z] [A-Z] HELLO,WORLD
刪除字元
透過選項-d來刪除指定的字符,透過-d -c選項可以用來保留指定的字元。下面來看案例
# 删除指定字符ae # echo 'There are apples' | tr -d 'ae' Thr r ppls # 删除指定字符,只保留数字和字母及换行符,其他的字符全部删除 # echo 'sSwd,aw23e;sw aswe' | tr -d -c 'a-zA-Z0-9\n' sSwdaw23eswaswe
壓縮字元
這個功能非常的常用,它可以來將連續重複的字元壓縮成只留一個。我們常用它來刪除連續的空格只留一個空格,刪除連續的換行符號只留一個換行符。想要完成壓縮字元的功能,需要使用-s選項。
# 删除连续的空格只留下一个(我们也经常删除连续的换行符只留一个) # echo -e "hello world.\n\n\n" | tr -s ' \n' hello world.
上面的幾個例子比較簡單,可能看不出這個指令的威力,下面再來看幾個稍微複雜點的案例。
我們知道,cut對於連續空格的處理不是很擅長。如果想用cut來選取df指令顯示結果的第二列,是辦不到的。這時候,如果先使用tr指令將多個連續空格壓縮成一個,那麼cut指令就能夠來滿足需求了。
# df -h | tr -s ' \t' | cut -d ' ' -f 2 Size 40G 487M 497M 497M 497M 100M
可以看到,透過tr的處理,cut現在能夠獲取到第二列資訊了。
tr這個指令功能很強大,用法非常的簡單,希望大家都能掌握並應用它。
以上是linux系統下tr指令詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!