欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


Win10系统驱动怎么备份?
整合服务器时易犯十个错误
服务器安全管理四个注意事项
Linux常见紧急情况处理方法
Linux操作系统下三种配置环境变量的方法
excel单元格怎么设置自动闪烁提醒?
讯飞语音输入法电脑版怎么用
Win7升级Win10后QQ能上网页却打不开怎么办
如何把光速输入法设为默认输入法
如何避免输入法错别字的情况
Linux系统中tr命令的基本使用教程
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   用法:tr [选项]... SET1 [SET2]

  从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。

  -c, -C, --complement 首先补足SET1

  -d, --delete 删除匹配SET1 的内容,并不作替换

  -s, --squeeze-repeats 如果匹配于SET1 的字符在输入序列中存在连续的

  重复,在替换时会被统一缩为一个字符的长度

  -t, --truncate-set1 先将SET1 的长度截为和SET2 相等

  --help 显示此帮助信息并退出

  --version 显示版本信息并退出

  SET 是一组字符串,一般都可按照字面含义理解。解析序列如下:

  NNN 八进制值为NNN 的字符(1 至3 个数位)

   反斜杠

  a 终端鸣响

  b 退格

  f 换页

  n 换行

  r 回车

  t 水平制表符

  v 垂直制表符

  字符1-字符2 从字符1 到字符2 的升序递增过程中经历的所有字符

  [字符*] 在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度

  [字符*次数] 对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数

  [:alnum:] 所有的字母和数字

  [:alpha:] 所有的字母

  [:blank:] 所有呈水平排列的空白字符

  [:cntrl:] 所有的控制字符

  [:digit:] 所有的数字

  [:graph:] 所有的可打印字符,不包括空格

  [:lower:] 所有的小写字母

  [:print:] 所有的可打印字符,包括空格

  [:punct:] 所有的标点字符

  [:space:] 所有呈水平或垂直排列的空白字符

  [:upper:] 所有的大写字母

  [:xdigit:] 所有的十六进制数

  [=字符=] 所有和指定字符相等的字符

  仅在SET1 和SET2 都给出,同时没有-d 选项的时候才会进行替换。

  仅在替换时才可能用到-t 选项。如果需要SET2 将被通过在末尾添加原来的末字符的方式

  补充到同SET1 等长。SET2 中多余的字符将被省略。只有[:lower:] 和[:upper:]

  以升序展开字符;在用于替换时的SET2 中以成对表示大小写转换。-s 作用于SET1,既不

  替换也不删除,否则在替换或展开后使用SET2 缩减。

  tr命令中的参数 -c 比较实用,可以用字符串1中字符集的补集替换此字符集,要求字符集为A S C I I。然后在终端上试了一条命令:

  代码如下:

  tr -cs "[a-z][A-Z]" "[12*]"

  这是将文件 diary.txt 内的非字符数据转换成换行符,然后用 -s 选项删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

  后来仔细看这条命令时,发现在 12 后面加了个 * ,当我去掉这个 * 时,再运行,发现得出的结果全在同一行,并且用 ] (左中括号)隔开,然后我又试着 用 n 代替 12,

  发现也是只有在 n 后加 * 才得出正确的结果。后来将中括号去掉。这是不要 * 时可以输出正确结果,发而加了 * 后会将结果都输出在一行,中间用 * 隔开。

  猜想:是否在加中括号后,里面的特殊字符后都要加 *,无论是用字母表示的,还是用八进制数表示的。

  下面再举一些例子:

  代码如下:

  [root@localhost zhangy]# echo "TANK" |tr A-Z a-z #大写字母转小写

  tank

  代码如下:

  [root@localhost zhangy]# echo 'tank zhang' | tr a-z A-Z #小写字线转大写

  TANK ZHANG

  代码如下:

  [root@localhost zhangy]# cat aaa.txt #原文件

  aaa

  bbb

  代码如下:

  [root@localhost zhangy]# cat aaa.txt|tr 'a' 'c' #字母c替换字母a

  ccc

  bbb

  代码如下:

  [root@localhost zhangy]# cat aaa.txt|tr -d 'a' #删除所有字母a

  bbb

  代码如下:

  [root@localhost zhangy]# cat aaa.txt|tr -d 'nt' 删除文件file中出现的换行'n'、制表't'字符

  aaabbb

  代码如下:

  [root@localhost zhangy]# cat aaa.txt|tr -s [a-zA-Z] #删除重复的字母

  a

  b

  代码如下:

  [root@localhost zhangy]# cat aaa.txt|tr -s 'n' #删除空行

  aaa

  bbb

  代码如下:

  [root@localhost zhangy]# cat aaa.txt |tr -s '11' '40' #用空格符40替换制表符11

  aaa

  bbb

  代码如下:

  # tr a c < test #将test文件中的a变成c

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站