概述

使用tr命令可以对输入的字符串的字符进行替换、压缩和删除(使用-d选项),需要注意的是,每个替换行为是根据原字符串进行的,也可以理解成是同时一一替换,而不是等待第一个字符替换完了再替换下一个。下图说明

image

# echo "helloc,world" | tr 'lo' 'oe' //l替换o后,那候些替换过来的o不会替换为e

heooec,werod

命令格式

tr [-cdst][--help][--version][第一字符集][第二字符集]

tr [OPTION]…SET1[SET2]

参数说明:

字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;

字符集2:指定要转换成的目标字符集。

'A-Z' 和 'a-z'都是集合,集合是可以自己制定的,例如:'ABD-}'、'bB.,'、'a-de-h'、'a-c0-9'都属于集合,集合里可以使用'\n'、'\t',可以可以使用其他ASCII字符。

-c, --complement:反选设定字符。也就是符合 SET1的部份不做处理,不符合的剩余部份才进行转换

-d, --delete:删除指令字符

-s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符

-t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等,然后SET1中的字符替换成SET2字符

实例

删除数字

# echo "1234abcd" | tr -d [:digit:]

abcd

删除特定字符

# echo "1234567843ab,cd" | tr -d 34

125678ab,cd

反向删除

# echo "1234567843ab,cd" | tr -Cd 34

3443

将制表符转换为空格

cat text | tr '\t' ' '

缩减连续重复的字符成指定的单个字符

# echo "123333a4444ab,cd" | tr -s 34 zs //将连续的3和4分别替换成单个z好s

12zasab,cd

小写转大写

# echo "hello,world" | tr a-z A-Z

HELLO,WORLD

# echo "hello,world" | tr [:lower:] [:upper:]

HELLO,WORLD

# echo "hello,world" | tr a-z A-Z

HELLO,WORLD

# echo "hello,world" | tr [:lower:] [:upper:]

HELLO,WORLD

删除Windows文件“造成”的'^M'字符

cat file | tr -s "\r" "\n" > new_file

cat file | tr -d "\r" > new_file

# echo "helloc,world" | tr -t 'lowc' 'oe' //将lowc截断成lo,然后将字符串中l替换成o,o替换成e,需要注意的是,每个替换行为是根据原字符进行的

heooec,werod

tr --help

Usage: tr [OPTION]... SET1 [SET2]

Translate, squeeze, and/or delete characters from standard input,

writing to standard output.

-c, -C, --complement use the complement of SET1

-d, --delete delete characters in SET1, do not translate

-s, --squeeze-repeats replace each input sequence of a repeated character

that is listed in SET1 with a single occurrence

of that character

-t, --truncate-set1 first truncate SET1 to length of SET2

--help display this help and exit

--version output version information and exit

SETs are specified as strings of characters. Most represent themselves.

Interpreted sequences are:

\NNN character with octal value NNN (1 to 3 octal digits)

\\ backslash

\a audible BEL

\b backspace

\f form feed

\n new line

\r return

\t horizontal tab

\v vertical tab

CHAR1-CHAR2 all characters from CHAR1 to CHAR2 in ascending order

[CHAR*] in SET2, copies of CHAR until length of SET1

[CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0

[:alnum:] all letters and digits

[:alpha:] all letters

[:blank:] all horizontal whitespace

[:cntrl:] all control characters

[:digit:] all digits

[:graph:] all printable characters, not including space

[:lower:] all lower case letters

[:print:] all printable characters, including space

[:punct:] all punctuation characters

[:space:] all horizontal or vertical whitespace

[:upper:] all upper case letters

[:xdigit:] all hexadecimal digits

[=CHAR=] all characters which are equivalent to CHAR

Translation occurs if -d is not given and both SET1 and SET2 appear.

-t may be used only when translating. SET2 is extended to length of

SET1 by repeating its last character as necessary. Excess characters

of SET2 are ignored. Only [:lower:] and [:upper:] are guaranteed to

expand in ascending order; used in SET2 while translating, they may

only be used in pairs to specify case conversion. -s uses SET1 if not

translating nor deleting; else squeezing uses SET2 and occurs after

translation or deletion.

GNU coreutils online help:

For complete documentation, run: info coreutils 'tr invocation'

linux tr 字符串,linux tr命令-转换或删除输入的字符的相关推荐

  1. linux expr字符串,linux expr 命令

    linux expr 命令 expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能. 它还具有几个特殊功能,判断变量或参数是否为整数.是否为空.是否为0等. ex ...

  2. linux expect 字符串,linux expect 用法

    一.概述 我们通过Shell可以实现简单的控制流功能如循环.判断等.但是对于需要交互的场合则必须通过人工来干预有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而Expect就使 ...

  3. linux shell 字符串 文件内容 大小写 转换 替换

    目录 字符串大小写替换 文件内容大小写替换<原地置换> 文件内容大小写替换<需重定向> 字符串大小写替换 小写替换大写 [root@localhost ~]# echo &qu ...

  4. linux中 字符串,linux内核驱动中对字符串的操作

    size_t strlcat(char *dest, const char *src, size_t count) 功能:把src所指字符串的前count个字符添加到dest结尾处(覆盖dest结尾处 ...

  5. 【转】Linux下Oracle sqlplus无法使用命令退格删除和历史记录的解决方法(使用rlwrap)...

    文章转自:http://www.ha97.com/4856.html 作者: 谋万世全局者 PS:近来因工作需要业余在学习oracle,发现通过SecureCRT或putty等SSH客户端远程登录Li ...

  6. linux l字符串,Linux shell 字符串常用操作

    取变量的长度[root@oldjun-study scripts]# var=oldboy123 [root@oldjun-study scripts]# echo ${var} oldboy123 ...

  7. 【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-汇总 ( Chapter17-ChapterB )

    十七.创建函数 bash shell 提供了用户自定义函数功能,可以将 shell 脚本代码放入函数中封装起来. 函数是一个脚本代码块,你可以为其命名并在脚本中的任何位置重用它.每当需要在脚本中使用该 ...

  8. linux history原理,linux history(命令历史)

    1.bash中默认命令记忆可达1000个.这些命令保存在主文件夹内的.bash_history中. 2.~/.bash_history:记录的是前一次登录以前所执行过的命令.至于本次登录的命令暂时存储 ...

  9. AutoCAD 2011、Map 3D 2011, Civil 3D 2011命令行中不能输入中文的修复补丁

    问题描述 该修复补丁能够修复一个导致用户无法在AutoCAD® 2011产品的命令行窗口中输入亚洲字符的问题. 适用产品 AutoCAD® 2011 AutoCAD® Architecture 201 ...

最新文章

  1. VirtualBox上装CentOS5.8网络不通问题
  2. 模板—扩展GCD*2
  3. 半监督分类算法_用图网络进行半监督分类
  4. 每日两SQL(7),欢迎交流~
  5. teamcity_TeamCity工件:HTTP,Ant,Gradle和Maven
  6. 谐波分析显著性检验matlab,关于谐波检测方法的MATLAB仿真及综合性能分析.pdf
  7. 【HTML】使用css3和html给网站添加上春节灯笼特效
  8. 忙了好一阵子了 才记起来我的博客园
  9. 无线充qi协议c语言详解,无线充电Qi协议正向通信FSK的解调设计
  10. 如何阅读mysql源代码_我是如何开始阅读MySQL源码的?
  11. 大智慧有Linux炒股软件,UOS(Deepin Linux)安装炒股软件(通达信大智慧等)的方法...
  12. 卡尔曼滤波器之扩展卡尔曼滤波
  13. linux 查看IP地址
  14. ireport mysql_iReport连接Mysql创建图表报表
  15. 叶罗丽用计算机对话,叶罗丽小剧场:王默和水王子秀恩爱,俩人的对话也太搞笑了...
  16. RL(Chapter 6): Windy Gridworld
  17. 阿里云杨国彦:云上护航,陪伴成长
  18. Go Web快速开发框架 Fiber
  19. PC端的一些简单适配
  20. R语言空间面板数据统计分析

热门文章

  1. 分类9个无理数并比较他们之间的分布差异
  2. 二分类神经网络的特征光谱---1-2至1-9
  3. 计算机组成原理数据冒险的解决nop,计算机组成原理实验讲义(103页)-原创力文档...
  4. php smarty安装,php smarty 安装 、配置、使用 及缓存cache的配置使用
  5. Python中多个数组行合并及列合并的方法总结
  6. 【Paper】2019_Distributed Optimal Control of Energy Storages in a DC Microgrid with Communication Dela
  7. 【控制】《多智能体机器人系统信息融合与协调》范波老师-第3章-多 Agent 协调的学习与对策
  8. 一起学nRF51xx 3 -  gpiote
  9. 【PC工具】U盘SD卡测试工具,速度测试,坏块测试查找
  10. android反编译的方法