tr 命令詳解

2021-06-23 08:21:40 字數 2322 閱讀 2639

tr命令可以實現sed的許多功能,比如

替換字元

刪除字元

去除重複字元

它從標準輸入中接受輸入,在「替換」功能裡面,兩個變數str1,str2,  str1相當於實現了查詢,str2來實現替換功能。。 在刪除,去重功能裡面,只要str1即可

格式:tr  [option]   "str1"   "str2"  < input_file

cat *** | tr [option] "str1"  "str2"

-c 用字串1中字符集的補集替換此字符集,要求字符集為ascii。

-d 刪除字串1中所有輸入字元。

-s 刪除所有重複出現字串行,只保留第乙個;即將重複出現字串壓縮為乙個字串。

2、字元範圍  ----為什麼是字元範圍???tr 對str1和str2實現的任何功能,請記住,都是針對字元而言的,而不是字串!!!

指定字串1或字串2的內容時,只能使用單字元或字串範圍或列表。在替換功能裡面,str1和str2裡面的字元是一一對應的!!!

[a-z] a-z內的字元組成的字串。

[a-z] a-z內的字元組成的字串。

[0-9] 數字串。

\octal 乙個三位的八進位制數,對應有效的ascii字元。

[o*n] 表示字元o重複出現指定次數n。因此[o*2]匹配oo的字串。

tr中特定控制字元的不同表達方式

速記符含義八進位制方式

\a ctrl-g  鈴聲\007

\b ctrl-h  退格符\010

\f ctrl-l  走行換頁\014

\n ctrl-j  新行\012

\r ctrl-m  回車\015

\t ctrl-i  tab鍵\011

\v ctrl-x  \030

例項:替換:

cat file | tr "abc" "xyz" > file2     ----字元是一一對應的,a替換為x,  b替換為y

cat file | tr [a-z] [a-z]  >file2           實現了大小寫替換

cat file | tr [o*3] [abc]  ?????0--------------為什麼沒有實現????

刪除:-d

cat file | tr -d "hello" > file2      ----ps: 針對的是字元,所有的 h, e,l ,o都會被刪除

cat file | tr -d "\t" > file2                 刪除所有的製表符,切記,雙引號「」裡面轉義字元\才起作用,才是真正的轉義了,而單引號' '只是單純的字元面值\t

刪除: -s

cat file | tr -s [a-za-z] > file2             刪除連續著的字元,即去重,只保留第乙個, 這個操作適合所有的a-z a-z 52個字母

cat file | tr -s "\n" > file2刪除空行

++++++++++++++++++++++++++++++++++

刪除空行的方法:

grep: grep -v '^$' file

sed: sed '/^$/d'  file 或 sed -n '/./p' file

awk: awk '/./ ' file

for i in $(`cat file`)  echo $i  end

——————————————————

刪除windows檔案「造成」的'^m'字元  ,即回車符\t

# cat file | tr -d "\r" > file2 或者

# cat file | tr -s "\r" "\n" > file2

++++++++++++++++++++++++++++++++++++++

另外:如果想替換分隔符,比如將: 替換為製表符

cat file | tr ":" "\t"

如果分隔符是數目不等的空格,那麼需要加上-s , 剔除掉重複的空格,然後替換!即-s str1 str2 , 可以先去重,後替換!

例如 :

echo  "a      b  c" |tr " " ":"    ----> a:::b:c

echo "a      b  c" |tr -s " " ":"         a:b:c

tr命令詳解

通過使用 tr,您可以非常容易地實現 sed 的許多最基本功能。您可以將 tr 看作為 sed 的 極其 簡化的變體 它可以用乙個字元來替換另乙個字元,或者可以完全除去一些字元。您也可以用它來除去重複字元。這就是所有 tr 所能夠做的。tr用來從標準輸入中通過替換或刪除操作進行字元轉換。tr主要用於...

Linux下tr命令詳解

tr是translate的簡寫,通過這個單詞,你大概也能猜到它是幹什麼的了吧!沒錯,它可以用乙個字串來替換另乙個字串,或者可以完全除去一些字元。您也可以用它來除去重複字元。tr用來從標準輸入中通過替換或刪除操作進行字元轉換。tr主要用於刪除檔案中控制字元或進行字元轉換。使用tr時要轉換兩個字串 字串...

mac的 tr命令 tr命令使用

tr translate or delete characters 命令 tr option set1 set2 引數 c,complement 反選設定字元。也就是符合 set1 的部份不做處理,不符合的剩餘部份才進行轉換 d,delete 刪除指令字元 s,squeeze repeats 縮減連...