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 縮減連...