[Linux--Shell命令]--tr命令

来源:互联网 发布:java断点快捷键 编辑:程序博客网 时间:2024/05/24 07:19

前言

    在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
0
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
0
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



原创粉丝点击