連續多個』\n『字元壓縮成單個'\n'
cat t.txt | tr -s '\n'
通過使用 tr,您可以非常容易地實現 sed 的許多最基本功能。您可以將 tr 看作為 sed 的(極其)簡化的變體:它可以用乙個字元來替換另乙個字元,或者可以完全除去一些字元。您也可以用它來除去重複字元。這就是所有 tr 所能夠做的。
tr用來從標準輸入中通過替換或刪除操作進行字元轉換 。tr主要用於刪除檔案中控制字元或進行字元轉換。使用tr時要轉換兩個字串:字串1用於查詢,字串2用於處理各種轉換。tr剛執行時,字串1中的字元被對映到字串2中的字元,然後轉換操作開始。
帶有最常用選項的tr命令格式為:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
這裡:-c 用字串1中字符集的補集替換此字符集,要求字符集為ascii。
-d 刪除字串1中所有輸入字元。
-s 刪除所有重複出現字串行 ,只保留第乙個;即將重複出現字串壓縮為乙個字串。
input-file是轉換檔名。雖然可以使用其他格式輸入,但這種格式最常用。
2、字元範圍
指定字串1或字串2的內容時,只能使用單字元或字串範圍或列表。
[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
----------------------例項:
將檔案file中出現的"abc"替換為"xyz":
# cat file | tr "abc" "xyz" > new_file
【注意】這裡,凡是在file中出現的"a"字母,都替換成"x"字母,"b"字母替換為"y"字母,"c"字母替換為"z"字母。而不是將字串"abc"替換為字串"xyz"。
2、使用tr命令「統一」字母大小寫
(小寫 --> 大寫)
# cat file | tr [a-z] [a-z] > new_file
(大寫 --> 小寫)
# cat file | tr [a-z] [a-z] > new_file
3、把檔案中的數字0-9替換為a-j
# cat file | tr [0-9] [a-j] > new_file
4、刪除檔案file中出現的"snail"字元
# cat file | tr -d "snail" > new_file
【注意】這裡,凡是在file檔案中出現的's','n','a','i','l'字元都會被刪除!而不是緊緊刪除出現的"snail」字串。
5、刪除檔案file中出現的換行'\n'、製表'\t'字元
# cat file | tr -d "\n\t" > new_file
不可見字元都得用轉義字元來表示的,這個都是統一的。
6、刪除「連續著的」重複字母,只保留第乙個
# cat file | tr -s [a-za-z] > new_file
7、刪除空行
# cat file | tr -s "\n" > new_file
8、刪除windows檔案「造成」的'^m'字元
# cat file | tr -d "\r" > new_file
或者# cat file | tr -s "\r" "\n" > new_file
【注意】這裡-s後面是兩個引數"\r"和"\n",用後者替換前者
9、用空格符\040替換製表符\011
# cat file | tr -s "\011" "\040" > new_file
10、把路徑變數中的冒號":",替換成換行符"\n"
# echo $path | tr -s ":" "\n"
mac的 tr命令 tr命令使用
tr translate or delete characters 命令 tr option set1 set2 引數 c,complement 反選設定字元。也就是符合 set1 的部份不做處理,不符合的剩餘部份才進行轉換 d,delete 刪除指令字元 s,squeeze repeats 縮減連...
Linux Shell命令 tr命令
在linux常用的命令中,我們可以通過使用tr,非常容易地實現 sed 的許多最基本功能。1 定義 日常操作中,tr用來從標準輸入中通過替換或刪除操作進行字元轉換。2 使用格式 tr c d s string1 to translate from string2 to translate to in...
tr與sed命令 將換行符替換為空格
處理文字時需要將換行符替換為空格,若使用sed命令會比較麻煩,而使用tr命令非常方便。輸入文字 country.txt china america france german sed命令 參考sed命令替換換行符 cat country.txt sed label n s n b label tr命...