文本过滤命令--tr

tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用t r时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。

常用格式:tr [-c -d -s] [string_translate_from] [string_translate_to]  input_file

选项含义:

-c :用字符串from的补集替换此字符集(须为ASCII)

-d: 删除字符串from中的所有输入字符

-s: 删除所有重复序列,只保留第一个

二、tr命令用法

保存输出(即将输出结果保存至文件中,利用重定向):tr -s  "[a-z]" < input_file > save_file

去除重复字符:tr -s  "[a-z]" < input_file 或者 cat input_file | tr -s "[a-z]"

删除空行:tr -s "[\012]"  < input_file,其实用sed也很简单,这里\012是换行的八进制表示,因此也可以这样:tr -s "\n" < input_file 

大小写转换:echo "testTESTHERE,ENd"  | tr "[a-z]" "[A-Z]",将文本中大写转为小写并保存:cat file | tr "[A-Z]"  "[a-z]" > result_file,小写转为大写类似.

删除指定字符:tr -cs "[a-z] [A-Z]" "[\n*]"  < input_file  #将文件中每行不包含在【a-z】或者【A-Z】的字符串放在字符串from中并转换为新的一行

转换指定字符:使用-s选项,如: tr -s "[\136]"  "[\011*]"   <  input_file  >  result.tmp  ,这里^的八进码代表是136,^M的代表是015,tab的代表码是011,^Z的八进制码是032,

有时在windows下写的一些脚本放到linux中去运行是会报一些有关字符表示的错误,因此这里的命令就是很有用的:tr  -s  "[\015\032]"  "\n"  <   input_file,用“\n”替换“^M”和“^Z”

,再如,要删除文件中的“^M”,并用换行代替: tr -s "[\015]"   "\n"  <  input_file 或者 tr -s "\r"  "\n" <  input_file

一般的dos转unix格式命令(经常用到):tr  -s  "[\015\032]"  "[\012*]"  <   input_file



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值