在linux常用的命令中,我們可以通過使用tr,非常容易地實現 sed 的許多最基本功能。
(1)定義:日常操作中,tr用來從標準輸入中通過替換或刪除操作進行字元轉換。
(2)使用格式:
#tr -c -d -s ["string1_to_translate_from"]["string2_to_translate_to"] < input-file
options:
-c 用字串1中字符集的補集替換此字符集,要求字符集為ascii。
-d 刪除字串1中所有輸入字元。
-s 刪除所有重複出現字串行,只保留第乙個;即將重複出現字串壓縮為乙個字串。
input-file是轉換檔名。
(3)字元範圍
指定字串1或字串2的內容時,只能使用單字元或字串範圍或列表(可以是正規表示式)。
[a-z] a-z內的字元組成的字串。
[a-z] a-z內的字元組成的字串。
[0-9] 數字串。
\octal 乙個三位的八進位制數,對應有效的ascii字元。
[o*n] 表示字元o重複出現指定次數n。因此[o*2]匹配oo的字串。
1、將檔案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、刪除控制符號'^a'字元
# cat file | tr -d "\01" > new_file
9、用soh符號\01替換stx符號\02
#cat file |tr -s "\02" "\01" >new_file
八進位制十六進製制
十進位制字元
八進位制十六進製制
十進位制字元
0000
0nul
1004064@
0101
1soh
1014165a
0202
2stx
1024266b
0303
3etx
1034367c
0404
4eot
1044468d
0505
5enq
1054569e
0606
6ack
1064670f
0707
7bel
1074771g
10088bs
1104872h
11099ht
1114973i
120a
10nl
1124a74j
130b
11vt
1134b75k
140c
12ff
1144c76l
150d
13er
1154d77m
160e
14so
1164e78n
170f
15si
1174f79o
2010
16dle
1205080p
2111
17dc1
1215181q
2212
18dc2
1225282r
2313
19dc3
1235383s
2414
20dc4
1245484t
2515
21nak
1255585u
2616
22syn
1265686v
2717
23etb
1275787w
3018
24can
1305888x
3119
25em
1315989y
321a
26sub
1325a90z
331b
27esc
1335b91[
341c
28fs
1345c92\
351d
29gs
1355d93]
361e
30re
1365e94^
371f
31us
1375f95_
4020
32sp
1406096'
412133!
1416197a
422234"
1426298b
432335#
1436399c
442436$
14464
100d
452537%
14565
101e
462638&
14666
102f
472739`
14767
103g
502840(
15068
104h
512941)
15169
105i
522a42*
1526a
106j
532b43+
1536b
107k
542c44,
1546c
108l
552d45-
1556d
109m
562e46.
1566e
110n
572f47/
1576f
111o
6030480
16070
112p
6131491
16171
113q
6232502
16272
114r
6333513
16373
115s
6434524
16474
116t
6535535
16575
117u
6636546
16676
118v
6737557
16777
119w
7038568
17078
120x
7139579
17179
121y
723a58:
1727a
122z
733b59;
1737b
12376
3e62
>
1767e
126~
773f63?
1777f
127del
Android開發Linux shell命令
一 shell快捷鍵使用 1 上下箭頭調出歷史命令 2 ctrl a跳到第乙個字元前 3 ctrl u刪除提示符前的所有字元 4 ctrl k刪除提示符後全部字元 5 ctrl e轉到字元尾部 6 ctrl r向前查詢用過的命令 7 命令補齊 8 ctrl c 撤消當前命令列的編輯,另起一行.9 清...
mac的 tr命令 tr命令使用
tr translate or delete characters 命令 tr option set1 set2 引數 c,complement 反選設定字元。也就是符合 set1 的部份不做處理,不符合的剩餘部份才進行轉換 d,delete 刪除指令字元 s,squeeze repeats 縮減連...
說說Linux shell外部命令與內建命令
linux 命令有內部命令 內建命令 和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。內部命令 內部命令不需要使用子程序來執行,它們已經和shell編譯成一體,作為shell工具的組成部分存在。不需要借助外部程式檔案來執行。它們是一些比較簡單的linux系統命令,如exit,his...