tr - translate or delete characters 主要用于转换和删除字符

带有最常用选项的t r命令格式为:
tr -c -d -s [ "string1_to_translate_from" ] [ "string2_to_translate_to" ] input_file
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
Input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

字符范围
使用tr时,可以指定字符串列表或范围作为形成字符串的模式。这看起来很像正则表达式,但实际上不是。指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z]    a-z内的字符组成的字符串
[A-Z]    A-Z内的字符组成的字符串
[0-9]    数字串
/octal   一个三位的八进制数,对应有效的ASCII字符
[O*n]    表示字符O重复出现指定次数n 如:[O*2]匹配OO的字符串。
大部分tr变种支持字符类和速记控制字符。
字符类格式为[:class],包含数字、希腊字母、空行、小写、大写、ctrl键、空格、点记符、图形等等。

去除重复出现的字符 -s  因为都是字母,故使用[a-z]

[python@master2 tr]$ more a.txt
helloo worldddd
[python@master2 tr]$ cat a.txt |tr -s "[a-z]"
helo world
[python@master2 tr]$ tr -s "[a-z]" < a.txt
helo world

删除空行

要删除空行,可将之剔出文件。使用-s来做这项工作。换行的八进制表示为\012

[python@master2 tr]$ more b.txt
this is a one line two thress foure
[python@master2 tr]$
[python@master2 tr]$
[python@master2 tr]$ tr -s "[\012]"< b.txt
this is a one line
two
thress
foure
[python@master2 tr]$ tr -s "[\n]" < b.txt
this is a one line
two
thress
foure

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

[python@master2 tr]$ echo "May Day,May Day,Going Down.." | tr "[a-z]" "[A-Z]"
MAY DAY,MAY DAY,GOING DOWN..
[python@master2 tr]$
[python@master2 tr]$
[python@master2 tr]$ echo "May Day,May Day,Going Down.." | tr "[A-Z]" "[a-z]"
may day,may day,going down..
[python@master2 tr]$  echo "Hello World I Love You" |tr [:lower:] [:upper:]
HELLO WORLD I LOVE YOU

删除指定字符  #-d代表删除,[0-9]代表所有的数字,[: ]代表冒号和空格

[python@master2 tr]$ more c.txt
Monday :
Tuesday :
Wednesday :
Thursday :
Friday :
Saturday :
Sunday :
[python@master2 tr]$ cat c.txt |tr -d "[0-9][:]"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

Linux中 tr 命令详解的更多相关文章

  1. Linux shell tr 命令详解

    该随笔摘自 https://www.jb51.net/article/103892.htm Linux shell tr 命令详解 1. 用途 tr,translate的简写,主要用于压缩重复字符,删 ...

  2. 【转】linux中ifconfig 命令详解详解

    1 概述 ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息永远的存的电 ...

  3. linux中awk命令详解(最全面秒懂)

    一:linux中awk命令 1.awk命令简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinber ...

  4. Linux中rm命令详解

    linux下rm命令使用详解---linux删除文件或目录命令 用户可以用rm命令删除不需要的文件.该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除 ...

  5. linux中top命令详解

    linux的top命令里的cpu信息是什么意思呢? Cpu(s): 62.1% us, 15.9% sy,0.1% ni, 19.4% id,2.0% wa,0.1% hi,0.4% si Mem:  ...

  6. linux中echo命令详解

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 echo命令的功能是在显示器上显示一段文字,一般起到一个提示 ...

  7. Linux:tr命令详解

    tr tr命令可以对来自标准输入的字符进行替换.压缩和删除 语法 tr(选项)(SET1 SET2) 选项 -c或——complerment:取代所有不属于第一字符集的字符: -d或——delete: ...

  8. linux中ls命令详解 (转)

    -a -- 全部(all).列举目录中的全部文件,包括隐藏文件(.filename).位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录.      -l -- 长(long).列举目 ...

  9. Linux中ls命令详解

    ls命令是linux下最常用的命令之一,ls跟dos下的dir命令是一样的都是用来列出目录下的文件,下面我们就来一起看看ls的用法 英文全名:List即列表的意思,当我们学习某种东西的时候要做到知其所 ...

随机推荐

  1. maskrcnn_benchmark 理解

    转载与参考: 1,https://zhuanlan.zhihu.com/p/58101945 2,https://blog.csdn.net/linolzhang/article/details/71 ...

  2. 在DELPHI中动态创建控件以及控件的事件

    在DELPHI中我们经常要动态的创建控件以及控件的事件.例如,我们可能想根据程序需要动态的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作.这一般需要需要三步: 生成一 ...

  3. k8s local volume 和host path volume的区别

    k8s提供多种volume接口,其中local 和host path是容易混淆的两个接口.下面这篇文章解释了两者的区别: https://groups.google.com/forum/#!topic ...

  4. java-创建对象实例

    1.A a = new A(); 2.Class class = B.Class; B b = class .newInstance();

  5. 软件缺陷5C标准

    Correct(准确) :每个组成部分的描述准确,不会引起误解 Clear(清晰): 每个组成部分描述清晰,易于理解 Concise(简洁): 只包含必不可少的信息,不包括任何多余的内容 Comple ...

  6. centos7清楚journal日志

    1.只保留1天的日志 journalctl --vacuum-time=1d 参考:https://blog.csdn.net/ithomer/article/details/90634579

  7. vultr 更换服务器

    今天打算去p站看看电影 结果发现自己的vps被封了......记录一下换服务器的过程 首先去 https://www.17ce.com/ ping一下,发现只有国外的服务器能ping通 果然是被封了. ...

  8. gitlab本地部署方法(ubuntu16.04+gitlab9.5.5)

    Gitlab本地部署方法   1 前期准备 电脑配置:windows7 ,内存8GB以上(因为有4GB左右要分配给虚拟机中的ubuntu) 虚拟机:VMware Linux系统:ubuntu16.04 ...

  9. springboot整合filter

    新建一个项目 新建Firstfilter类 Firstfliter.java package com.example.filter; import java.io.IOException; impor ...

  10. 【Python】【demo实验24】【练习实例】【打印图样】

    原题: 打印出如下图案(菱形): * *** ***** ******* ***** *** * 我的源码: #!/usr/bin/python # encoding=utf-8 # -*- codi ...