学习啦>学习电脑>操作系统>Linux教程>

Linux系统中文本操作命令tr怎么使用

时间: 春健736 分享

学习啦在线学习网   tr命令可以用来对文本进行压缩删除以及替换等多种操作,十分强大,下面学习啦小编介绍了Linux系统中文本操作命令tr的使用讲解,希望大家喜欢。

  Linux系统中文本操作命令tr怎么使用

  linux:tr的命令用法

学习啦在线学习网   可以把tr看作为一个简化的sed工具,tr表示为:translate。tr命令主要用于实现以下两个功能

学习啦在线学习网   替换操作的字符串转换。

  删除操作的字符串转换,可以很容易的删除一些控制字符或者是空行。

  tr命令能够实现的功能,都能够用sed命令来实现。但就具体的替换功能来说,tr用起来更容易,也比较简单。

  一,命令格式

  [html]

  tr [option] ["string1"] ["string2"] < file

  常用的选项有:

学习啦在线学习网   默认选项。就是没有任何选项的时候,tr默认为替换操作,就是将string1在文件中出现的字符替换为string2中的字符,这里要注意的是替换关系。

学习啦在线学习网   -c选项,用string1中字符的补集替换string1,这里的字符集为ASCII。

学习啦在线学习网   -d选项,删除文件中所有在string1中出现的字符。

  -s选项,删除文件中重复并且在string1中出现的字符,只保留一个。

  -c选项在使用时,只是将string1替换为现在的补集,如在使用

  C代码

  [html]

  [root@localhost client]# echo "hello world,root,2012" | tr -c "0-9" "*"

学习啦在线学习网   *****************2012*

  可以看出,我们使用0-9,添加-c选项后,会把0-9替换为其补集,这时补集自然不包含0-9,而包含很多其它的字符,接下来就把所有的其它字符都替换成*号,但不包含数字。

学习啦在线学习网   如果只需要替换数字的话:

  C代码

  [html]

  [root@localhost client]# echo "hello world,root,2012" | tr "0-9" "*"

学习啦在线学习网   hello world,root,****

学习啦在线学习网   二,字符串的取值范围

  指定string或string2的内容时,只能使用单字符或字符串范围或列表。

  [a-z] a-z内的字符组成的字符串。

  [A-Z] A-Z内的字符组成的字符串。

学习啦在线学习网   [0-9] 数字串。

  \octal 一个三位的八进制数,对应有效的ASCII字符。

  [O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。

  三,控制字符的不同表达方式

  速记符 含义 八进制方式

  \a Ctrl-G 铃声

Linux系统中文本操作命令tr怎么使用

时间: 春健736 分享

学习啦在线学习网   tr命令可以用来对文本进行压缩删除以及替换等多种操作,十分强大,下面学习啦小编介绍了Linux系统中文本操作命令tr的使用讲解,希望大家喜欢。

  Linux系统中文本操作命令tr怎么使用

  linux:tr的命令用法

  可以把tr看作为一个简化的sed工具,tr表示为:translate。tr命令主要用于实现以下两个功能

学习啦在线学习网   替换操作的字符串转换。

  删除操作的字符串转换,可以很容易的删除一些控制字符或者是空行。

  tr命令能够实现的功能,都能够用sed命令来实现。但就具体的替换功能来说,tr用起来更容易,也比较简单。

  一,命令格式

  [html]

学习啦在线学习网   tr [option] ["string1"] ["string2"] < file

  常用的选项有:

学习啦在线学习网   默认选项。就是没有任何选项的时候,tr默认为替换操作,就是将string1在文件中出现的字符替换为string2中的字符,这里要注意的是替换关系。

  -c选项,用string1中字符的补集替换string1,这里的字符集为ASCII。

学习啦在线学习网   -d选项,删除文件中所有在string1中出现的字符。

  -s选项,删除文件中重复并且在string1中出现的字符,只保留一个。

  -c选项在使用时,只是将string1替换为现在的补集,如在使用

  C代码

  [html]

  [root@localhost client]# echo "hello world,root,2012" | tr -c "0-9" "*"

学习啦在线学习网   *****************2012*

  可以看出,我们使用0-9,添加-c选项后,会把0-9替换为其补集,这时补集自然不包含0-9,而包含很多其它的字符,接下来就把所有的其它字符都替换成*号,但不包含数字。

学习啦在线学习网   如果只需要替换数字的话:

  C代码

  [html]

学习啦在线学习网   [root@localhost client]# echo "hello world,root,2012" | tr "0-9" "*"

  hello world,root,****

  二,字符串的取值范围

  指定string或string2的内容时,只能使用单字符或字符串范围或列表。

学习啦在线学习网   [a-z] a-z内的字符组成的字符串。

  [A-Z] A-Z内的字符组成的字符串。

  [0-9] 数字串。

  \octal 一个三位的八进制数,对应有效的ASCII字符。

  [O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。

学习啦在线学习网   三,控制字符的不同表达方式

学习啦在线学习网   速记符 含义 八进制方式

  \a Ctrl-G 铃声

Linux系统中文本操作命令tr怎么使用

时间: 春健736 分享

  \f Ctrl-L 走行换页 class="main">

Linux系统中文本操作命令tr怎么使用

时间: 春健736 分享

  \n Ctrl-J 新行 class="main">

Linux系统中文本操作命令tr怎么使用

时间: 春健736 分享

  \r Ctrl-M 回车 class="main">

Linux系统中文本操作命令tr怎么使用

时间: 春健736 分享

  \t Ctrl-I tab键 class="main">

Linux系统中文本操作命令tr怎么使用

时间: 春健736 分享

  \v Ctrl-X 0 注意这些控制字符,如果想在linux下输入,如我们可能需要输入^M这种字符,只需ctrl+V+M同时按下即可。

  四,字符替换

  这是tr的默认操作,先看下面的命令和输出

  C代码

  [html]

  [root@localhost client]# echo "hello world" | tr "a-z" "A-Z"

学习啦在线学习网   HELLO WORLD

  [root@localhost client]# echo "hello world" | tr "a-l" "A-Z"

  HELLo worLD

  [root@localhost client]# echo "hello world" | tr "a-z" "A-H"

  HEHHH HHHHD

  第一行输出就是将小写换成大写。

  第二行输出将小写中的a-l分别换成A-L,而将小写中的l以后的字符都不替换。

  第三行输出将小写中的a-h换成A-H,而h以后的字符都换成H,因为后者的替换空间没有前面的字符空间大,所以就重复后面的H,相当于后面的字符是A-HHH......HHHHH。

学习啦在线学习网   如果我们想要进行大小写转换,可以按下面的输入:

  C代码

  [html]

  tr "a-z" "A-Z" < inputfile

  五,去除重复字符

学习啦在线学习网   这个时候,所用的选项是-s选项,如:

  C代码

  [html]

学习啦在线学习网   [root@localhost client]# echo "hello world,root" | tr -s "ao"

  hello world,rot

  [root@localhost client]# echo "hello world,root" | tr -s "lo"

  helo world,rot

学习啦在线学习网   [root@localhost client]# echo "hello world,root" | tr -s "a-z"

  helo world,rot

  [root@localhost client]# echo "hello world,root" | tr -s "0-9"

  hello world,root

  第一行表示将输入字符串中的包含在"ao"字符集中的重复字符去掉,只留一个。因为"hello world,root",只有o满足条件,所以将root变成rot,把中间的两个o变成一个。

  第二行将hello和root两个字符都压缩了。

学习啦在线学习网   第三行表示将a-z中的除复字符都去掉。

学习啦在线学习网   第三行表示将字符串中的重复的且重复字符在0-9字符集中的字符去掉,这里没有。

  如果我们想要去掉空行,可以这样操作:

  [html]

  tr -s "\n" < inputfile 或者 tr -s " class="main">

Linux系统中文本操作命令tr怎么使用

时间: 春健736 分享
645070