Shell笔记——命令:tr

来源:互联网 发布:彩票大赢家过滤软件 编辑:程序博客网 时间:2024/05/17 00:09

tr,用来从标准输入中通过替换/删除进行字符转换

主要用于删除文件中的控制字符或进行字符转换

 

使用时,提供两个字符串,串1:用于查询,串2:用于处理各种转换;串1的字符被映射到串2上,然后转换开始

 

主要用途:1.大小写转换

                    2.去除控制字符

                    3.删除字符

 

命令格式:

tr –c –d –s [“str_from”] [“str_to”] file

-c,用字符串1中字符集的补集替换此字符集,要求字符集为ASCII

-d,删除字符串1中所有输入字符串

-s,删除所有重复出现字符序列,只保留一个,即重复字符串压缩为一个

 

字符范围——tr,可以指定字符串列表或范围作为形成字符串的模式,似正则,但不是正则。

[a-z] [A-Z] [0-9]    /octal一个三位八进制数,对应有效ASCII字符

[s*n]字符s出现n

 

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

 

 

1.       去除所有重复字符【只保留一个】

$tr –s “[a-z]” < oops.txt

2.       去除空行

$tr –s “[/012]” <oops.txt

$tr –s “[/n]” <oops.txt

3.       小写转大写

$echo “AbcdefG” | tr “[a-z]” “[A-Z]”

$echo “AbcdefG” | tr “[:lower:]” “[:upper:]”

4.       删除指定字符串

$tr –cs “[a-z][A-Z]” “[/012*]” < data.txt

将非字母字符转为新行  -s压缩重复的字符

5.       转换控制字符

$tr –s “[/136]” “[/011*]” < start.txt

6.       快速转换

$tr –s “[/r]” “[/n]” < input.txt

7.       匹配多于一个字符

$tr “[0*4]” “*”< input.txt

原创粉丝点击