天天看點

[Linux Shell指令]--tr指令

前言

    在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

附:ASCII編碼表

八進制 十六進制 十進制 字元 八進制 十六進制 十進制 字元
00 00 nul 100 40 64 @
01 01 1 soh 101 41 65 A
02 02 2 stx 102 42 66 B
03 03 3 etx 103 43 67 C
04 04 4 eot 104 44 68 D
05 05 5 enq 105 45 69 E
06 06 6 ack 106 46 70 F
07 07 7 bel 107 47 71 G
10 08 8 bs 110 48 72 H
11 09 9 ht 111 49 73 I
12 0a 10 nl 112 4a 74 J
13 0b 11 vt 113 4b 75 K
14 0c 12 ff 114 4c 76 L
15 0d 13 er 115 4d 77 M
16 0e 14 so 116 4e 78 N
17 0f 15 si 117 4f 79 O
20 10 16 dle 120 50 80 P
21 11 17 dc1 121 51 81 Q
22 12 18 dc2 122 52 82 R
23 13 19 dc3 123 53 83 S
24 14 20 dc4 124 54 84 T
25 15 21 nak 125 55 85 U
26 16 22 syn 126 56 86 V
27 17 23 etb 127 57 87 W
30 18 24 can 130 58 88 X
31 19 25 em 131 59 89 Y
32 1a 26 sub 132 5a 90 Z
33 1b 27 esc 133 5b 91 [
34 1c 28 fs 134 5c 92 \
35 1d 29 gs 135 5d 93 ]
36 1e 30 re 136 5e 94 ^
37 1f 31 us 137 5f 95 _
40 20 32 sp 140 60 96 '
41 21 33 ! 141 61 97 a
42 22 34 " 142 62 98 b
43 23 35 # 143 63 99 c
44 24 36 $ 144 64 100 d
45 25 37 % 145 65 101 e
46 26 38 & 146 66 102 f
47 27 39 ` 147 67 103 g
50 28 40 ( 150 68 104 h
51 29 41 ) 151 69 105 i
52 2a 42 * 152 6a 106 j
53 2b 43 + 153 6b 107 k
54 2c 44 , 154 6c 108 l
55 2d 45 - 155 6d 109 m
56 2e 46 . 156 6e 110 n
57 2f 47 / 157 6f 111 o
60 30 48 160 70 112 p
61 31 49 1 161 71 113 q
62 32 50 2 162 72 114 r
63 33 51 3 163 73 115 s
64 34 52 4 164 74 116 t
65 35 53 5 165 75 117 u
66 36 54 6 166 76 118 v
67 37 55 7 167 77 119 w
70 38 56 8 170 78 120 x
71 39 57 9 171 79 121 y
72 3a 58 : 172 7a 122 z
73 3b 59 ; 173 7b 123 {
74 3c 60 < 174 7c 124 |
75 3d 61 = 175 7d 125 }
76 3e 62 > 176 7e 126 ~
77 3f 63 ? 177 7f 127 del

繼續閱讀