tr

转换和删除字符

支持标准输入

格式

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 sequence of a repeated character ##压缩即去重
that is listed in the last specified SET,
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

把第一个字符集转换为第二个字符集

定义第一个字符串和第二个字符串

  • 一一对应 对应转换
  • 第一个多 第二个少 第一个多出来的对应第二个最后一个
  • 第一个少 第二个多 第二个多出来的没有对应的弃用
[root@C8-1 ~]# tr '3579' 'baip'
1234567890
12b4a6i8p0
[root@C8-1 ~]# tr '3579' 'bai'
1234567890
12b4a6i8i0
[root@C8-1 ~]# tr '357' 'baip'
1234567890
12b4a6i890

增加选项 -t 强制一一对应

[root@C8-1 ~]# tr '135790' 'bai'
1234567890
b2a4i6i8ii
[root@C8-1 ~]# tr -t '135790' 'bai'
1234567890
b2a4i67890

支持类似通配符的写法

像通配符的写法,但不是通配符,是tr命令中的写法。

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 16进制

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

将小写字母替换为大写字母

[root@C8-1 ~]# tr ‘a-z’ 'A-Z'
dhaohwuifqhw]
GKDRKZXLITKZ]
13reqg35yhetdf
13UHTJ35ZKHWGI
[root@C8-1 ~]# tr ‘[:lower:]’ '[:upper:]'
tr: misaligned [:upper:] and/or [:lower:] construct
[root@C8-1 ~]# tr '[:lower:]' '[:upper:]'
qfoeihefu3310491fas
QFOEIHEFU3310491FAS
[root@C8-1 ~]# tr '[:upper:]' '[:lower:]'
QEGVD$TGS%^$*^#@GSDW
qegvd$tgs%^$*^#@gsdw

将序列竖着派

[root@C8-1 ~]# echo {1..8} | tr ' ' '\n'
1
2
3
4
5
6
7
8

支持压缩

tr -s

把连续的重复字符,表示为一个字符,压缩相同的

[root@C8-1 ~]# tr -s abc
aaabbbabababccccbcbcbc
ababababcbcbcbc

支持删除

tr -d

只要发现有小写abc就给删掉

[root@C8-1 ~]# tr -d abc
123abc456def789hijk
123456def789hijk
123ABC456d
123ABC456d

取补集

tr -c

除了字符集以外的字符,ctrl+d结束

配合-d使用,从随机数中取数字和字母

[root@C8-1 ~]# cat -n /dev/urandom | tr -dc '[:alnum:]' |  >un.text

用tr命令实现从1到100的运算

[root@C8-1 ~]# echo {1..100} | tr ' ' + |bc
5050
[root@C8-1 ~]# echo {1..100} | tr ' ' - |bc
-5048
[root@C8-1 ~]# echo {1..100} | tr ' ' '*'|bc
93326215443944152681699238856266700490715968264381621468592963895217\
59999322991560894146397615651828625369792082722375825118521091686400\
0000000000000000000000
[root@C8-1 ~]# echo {1..100} | tr ' ' '/'|bc
0

/dev/urandom 存放着随机字符

一个特殊的字符设备,里边放着随机数

[root@C8-1 ~]# ll /dev/urandom
crw-rw-rw-. 1 root root 1, 9 Jun 20 07:02 /dev/urandom

就相当于excel里边的查找和替换,挺好用的吧。

tr -dc '[:alnum:]' < /dev/urandom

tr命令-转换和删除字符的更多相关文章

  1. 【Linux基础】tr命令替换和删除字符

    1.tr命令 tr可以对来自标准输入的字符进行替换.压缩和删除,可以将一组字符变成另外一组字符.通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其 ...

  2. tr 命令 操作字符串中字符 删除替换 等

    ip=$(cat ${path}initOauth/initinfo.txt |awk '{if(NR==1)print $0;}'|tr -d '\r'); tr命令可以对来自标准输入的字符进行替换 ...

  3. tr转换或删除字符

    字符处理命令:tr —— 转换或删除字符 逐个字符处理而不是处理单词的tr [OPTION]... SET1 [SET2]    -d: 删除出现在字符集中的所有字符 tr ab AB

  4. 3.20 tr:替换或删除字符

    tr命令 从标准输入中替换.缩减或删除字符,并将结果写到标准输出. tr [option] [SET1]  [SET2] tr [选项]   [字符1]  [字符2]   -d    删除字符 -s  ...

  5. HBase笔记之远程Shell界面命令行无法删除字符的解决方案

    方法一: 设置终端退格键为ASCII 127 在XShell的界面中,设置 文件 --> 属性 --> 终端 --> 键盘 --> BACKSPACE键序列,改为ASCII 1 ...

  6. linux tr命令实现windows文本格式与linux文本格式间的转换

    tr 命令 转换和删除字符 选项: -d --delete:删除字符 -s --squeeze-repeats:把连续重复的字符以一个字符表示,即去重 -c –C --complement:取字符集的 ...

  7. linux中cut命令与tr命令

    目录 一:linux中cut命令 1.cut 命令作用 2.参数 3.参数案例解析: 二:tr命令 1.tr命令作用 2.tr命令格式 3.tr命令参数 4.案例解析: 一:linux中cut命令 1 ...

  8. 转换和删除重复命令tr

    前几篇文章介绍了几个用于处理字符的命令和工具,然而在处理大小写转换.删除重复字符等任务时,这些命令处理起来相对较为麻烦.这里将简单介绍Linux下自带的tr命令,相对于其他命令而言,其语法较为简单,比 ...

  9. linux的tr命令

    tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换. 语法 tr [ -c | -cds | -cs | -C | -Cds | -Cs | -ds | -s] [ -A] S ...

随机推荐

  1. 虚拟机栈(Java Stack)基础知识

    虚拟机栈即是程序运行时的单位,而堆是数据存储的单位.换句话说,栈解决的是程序运行的问题,即程序如何执行,如何处理数据,而堆是解决数据的存储问题,数据存在哪,放在哪 虚拟机栈细节如下图所示,其中当前栈帧 ...

  2. Oracle学习(十三)优化专题

    一.查询频繁,数据量大 索引 使用时机:表中经常查询的字段可以考虑添加索引. 联合索引:若能确认多个条件会同时使用时,可以将这几个条件作为联合索引. 单列索引:若条件查询时,这几个条件不是同时用到的话 ...

  3. ch4inrulz: 1.0.1靶机渗透

    ch4inrulz: 1.0.1靶机渗透 扫描主机端口,还行啦四个开放的端口,8011和80端口都运行着web服务. 80端口下的robots.txt告诉我们什么都没有 在8011端口的apache服 ...

  4. dedecmsv5.7sp1远程文件包含漏洞审计

    dedecms5.7 sp1版本存在远程文件包含漏洞,在此记录审计复现漏洞过程. 漏洞在/install/index.php(index.php.bak)文件中,漏洞起因是$$符号使用不当,导致变量覆 ...

  5. 如何学习iOS开发?iOS Developer Library足矣!

    记得上高中的时候,寄信请教二哥学习经验,二哥来信介绍学习经验说:资料书要快速阅读,把书上的题做完,然后再买几套资料书(习题集)继续练习. 这是二哥的经验,因为他自学能力强,可以消化多套资料书. 我仿照 ...

  6. 在程序开发中,++i 与 i++的区别在哪里?

    哈哈哈! 从大学开始又忘了...蜜汁问题哈 参考来源:https://www.zhihu.com/question/19811087/answer/80210083 i++ 与 ++i 的主要区别有两 ...

  7. 温湿度传感器DHT11程序示例

    DHT11概述 HT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器. 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性.传感器包括一个电阻式 ...

  8. C语言中time_t数据类型详细介绍

    包含文件:<time.h> #ifndef __TIME_T #define __TIME_T     /* 避免重复定义 time_t */ typedef long     time_ ...

  9. NOIP提高组2016 D1T2 【天天爱跑步】

    码了一个下午加一个晚上吧...... 题目描述: 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成 ...

  10. Linux init 详解(0,1,2,3,4,5,6)

    一.什么是 init init是Linux系统操作中不可缺少的程序之一. 所谓的init进程,它是一个由内核启动的用户级进程. 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数 ...