zoukankan      html  css  js  c++  java
  • shell脚本之tr命令使用

    tr命令用来进行对标准输入的内容做替换。例如

    # echo 'HELLO WORLD!!!' | tr "A-Z" "a-z"
    hello world!!!

    这里的"A-Z"、"a-z"都表示集合,shell脚本中定义集合类型很简单,即指定集合序列即可,但是对于上边的情形,不得非输入所有集合类型,可以通过“开始字符-结束字符”方式进行集合定义。使用tr命令结合集合使用,可以解决很多复杂问题。

    使用tr进行数据加密,解密:

    # echo 456 | tr "0-9" "9876543210"
    543

    # echo 543 | tr "9876543210" "0-9"
    456

    tr进行字符替换:

    # cat dept

    10    ACCOUNTING    NEW YORK
    20    RESEARCH    DALLAS
    30    SALES    CHICAGO
    40    OPERATIONS    BOSTON

    # cat dept | tr " " " "

    10 ACCOUNTING NEW YORK
    20 RESEARCH DALLAS
    30 SALES CHICAGO
    40 OPERATIONS BOSTON

    指定-d参数删除指定字符串:

    # echo 'hello 123 world 456 !!!' | tr -d '{0-9}'
    hello  world  !!!

    指定-c参数进行补集处理,通常与-d连用,删除不满足条件的字符:

    # echo 'hello 123 world 456 !!!' | tr -d -c '{0-9 }'
      123  456

    tr命令中-s参数进行字符压缩,将连续的重复字符压缩成当个字符,最常见的场景就是压缩空白格:

    # echo 'hello           123              world             456 !!!' | tr -s ' '
    hello 123 world 456 !!!

    技巧:使用tr将文件中的字符列表相加:

    # seq 5 | echo $[ $( tr ' ' '+' ) 0 ]
    15

    解释:将 替换成+后,脚本输出变成$[ 1+2+3+4+5+0 ],可以直接进行加法计算,省去循环读取数字的麻烦。

    tr也可以像集合一样使用各种不同的字符类。

    sed和tr替换换行符:sed ':label;N;s/, /,/;b label ; tr ' ' ','

  • 相关阅读:
    canvas gamebricks
    javascript 判断对象的值是否相等
    让控件全屏显示(WinForm)
    网络视频监控
    回调函数
    [导入][链接]FreeBSD + Sun Java
    [导入][一点一滴学英语]20060330
    [导入][来自网络] 酸酸甜甜就是我 不用我多介绍了 可是你是否听过天津话的版本?
    [导入][链接]差点漏掉 Eclipse 3.2 M6出来了
    [导入][链接]Five reasons why you should never use PostgreSQL
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/7049823.html
Copyright © 2011-2022 走看看