tr命令详细用法

http://www.51testing.com/?uid-45739-action-viewspace-itemid-173022

 

语法:
          tr [options]   [source-char-list]        [replace-char-list]      <    filename
用途:
    转换字符,例如:将大写字符转换成小写字符。选项可以让你指定所要删除的字符,以及将一串重复出现的字符浓缩成一个。
常用选项:
-c:   取source-char-list的反义,所有不在source-char-list中的字符。常与-d , -s配合使用。
-d:   删除source-char-list中所定义的字符。
-s:   浓缩重复的字符。如果标准输入中连续重复出现source-char-list里所列的字符,则将其浓缩成一个。或者将其浓缩成replace-char-list中的字符。

引用:[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。

tr中特定控制字符的不同表达方式

代码:
速记符含义八进制方式
/ a Ctrl-G 铃声/ 0 0 7
/ b Ctrl-H 退格符/ 0 1 0
/f Ctrl-L 走行换页/ 0 1 4
/n Ctrl-J 新行/ 0 1 2
/ r Ctrl-M 回车/ 0 1 5
/t Ctrl-I tab键/ 0 11
/ v Ctrl-X / 0 3 0



去除重复出现的字符
下面文件包含了一些打印错误。这种情况时常发生,例如在v i编辑器中,偶尔按住一个键不放。
代码:
And the cowwwwws went homeeeeeeeeeeeee
Or did theyyyyyyyyyyyyy

如果要去除重复字母或将其压缩在一起,使用- s选项。因为都是字母,故使用[ a - z ][A-Z]。输入文件重定向到t r命令。
dtdlut@dtdlut:~$ tr -s "[a-z][A-Z]" < apps.txt
And the cows went home
Or did they

删除空行
要删除空行,可将之剔出文件。下面是一个文件p l a n e . t x t。文本间有许多空行。
plane.txt
9879932 Spitfire




190992 Lancaster




238991 Typhoon

dtdlut@dtdlut:~$ tr -s "/n" < plane.txt
plane.txt
9879932 Spitfire
190992 Lancaster
238991 Typhoon


大写到小写
除了删除控制字符,转换大小写是t r最常用的功能。为此需指定即将转换的小写字符[ a - z ]和转换结果[ A - Z ]。
第一个例子,t r从一个包含大小写字母的字符串中接受输入。

tr "[a-z]" "[A-Z]"      或者         
tr "[:lower:]" "[:upper:]"
dtdlut@dtdlut:~$ echo "May Day,May Day,Going Down.." | tr "[a-z]" "[A-Z]"
MAY DAY,MAY DAY,GOING DOWN..


删除指定字符
偶尔会从下载文件中删除只包含字母或数字的列。需要结合使用- c和- s选项完成此功能。
下 面的文件包含一个星期的日程表。任务是从其中删除所有数字,只保留日期。日期有大写,也有小写格式。因此需指定两个字符范围[ a - z ]和[ A - Z ],命令tr    -cs         "[a-z][A-Z]"          "/n"将文件每行所有不包含在[ a - z ]或[ A - Z ](所有希腊字母)的字符串放在字符串replace-char-list中并转换为一新行。- s选项表明压缩所有新行, - c表明取source-char-list的反义。

dtdlut@dtdlut:~$ cat diray.txt
mondy 1all0:5b0
Tuesday 15:00
wednesday 15:30
thurday 10:30
Fridya 09:20


dtdlut@dtdlut:~$ tr -cs "[a-z][A-Z]" "/n" < diray.txt
mondy
all
b
Tuesday
wednesday
thurday
Fridya

### 回答1: tr命令是Linux中的一个文本处理工具,用于对文本进行字符转换和替换操作。它可以将一个字符集中的字符替换为另一个字符集中的字符,也可以删除指定字符集中的字符。tr命令的基本语法为: tr [OPTION] SET1 [SET2] 其中,OPTION为可选参数,SET1为需要替换或删除的字符集,SET2为替换后的字符集。如果只指定SET1,则表示删除SET1中的字符。常用的选项包括: -c:取反,即替换SET1中没有出现的字符; -d:删除SET1中的字符; -s:压缩,即将SET1中连续出现的重复字符压缩为一个字符。 例如,将文件中的所有小写字母转换为大写字母: tr 'a-z' 'A-Z' < file.txt 将文件中的所有空格替换为下划线: tr ' ' '_' < file.txt 删除文件中的所有数字: tr -d '-9' < file.txt 压缩文件中的重复字符: tr -s 'a-z' < file.txt ### 回答2: Linux中的tr命令是一个十分强大且重要的命令,它主要用于对文本进行字符替换、删除或转换等操作。在Linux系统中,tr命令用法和参数非常丰富,下面我们将详细介绍其常用的用法。 1.tr命令的基本语法 tr [option] set1 set2 其中,option为可选参数,set1和set2分别表示字符集1和字符集2。 2.tr命令的功能 tr命令的主要功能是对输入的字符集进行转换、删除、替换等操作。 3.tr命令的常用参数 (1)-d,表示删除字符 例如以下命令将从文本文件中删除所有的数字: $ cat file.txt | tr -d ‘0-9’ > newfile.txt (2)-s,表示压缩字符 例如以下命令将重复的字符压缩成一个字符: $ cat file.txt | tr -s ‘a’ ‘b’ > newfile.txt (3)-c,表示补全字符 例如以下命令将把除了a、b以外的其他字符都替换为’-‘: $ cat file.txt | tr -c ‘ab’ ‘-’ > newfile.txt (4)-t,表示删除字符 例如以下命令将把文本文件中的大写字母转换为小写字母: $ cat file.txt | tr -t ‘[:upper:]’ ‘[:lower:]’ > newfile.txt (5)-r,表示替换字符 例如以下命令将把文本文件中的a替换为b: $ cat file.txt | tr ‘a’ ‘b’ > newfile.txt 4.总结 以上便是Linux中tr命令的常用用法和参数。其中,tr命令十分有用,主要用于字符集的转换、删除、替换等操作,熟练掌握它的各种用法和参数,能够在Linux系统中快速、高效地完成各种文本处理任务。希望对大家有所帮助。 ### 回答3: tr命令是一个常见的Linux命令,可以用于转换或删除字符。tr命令的基本语法为:tr [OPTION]... SET1 [SET2]。其中,OPTION是可选的命令选项,SET1是要转换或删除的字符集合,SET2是用于替换字符集SET1的字符集合。 tr命令的一些常见选项和用法如下: 1. -d选项:删除指定字符,例如:tr -d 'aeiou'将删除输入文本中的所有元音字母。 2. -s选项:压缩字符集,例如:tr -s ' '将多余的空格压缩成一个空格。 3. -c选项:取反字符集,例如:tr -c 'a-z' '0-9'将所有非小写字母替换为数字。 4. SET选项:SET可以是字符范围或字符列表,例如:tr 'a-z' 'A-Z'将小写字母转换为大写字母。 5. SET1和SET2的长度不相等:如果SET1和SET2的长度不相等,tr命令会将SET1中的字符用SET2中的最后一个字符进行替换。例如:tr 'abc' '12'将'a'转换为'1','b'转换为'2','c'转换为'2'。 6. 文件重定向:tr命令还可以使用文件重定向,例如:tr 'a-z' 'A-Z' < input.txt > output.txt将input.txt中的小写字母转换为大写字母,并将结果输出到output.txt中。 总之,tr命令是一个非常有用的转换和删除字符的工具,可以轻松地完成一些文本处理任务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值