首頁  >  文章  >  運維  >  linux系統下tr指令詳解

linux系統下tr指令詳解

齐天大圣
齐天大圣原創
2020-11-05 16:48:152898瀏覽

今天想跟大家介紹下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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn