美文网首页
2.6 用 tr 进行转换

2.6 用 tr 进行转换

作者: 拙言_Coder | 来源:发表于2019-03-09 13:09 被阅读8次

《Linux Shell 脚本攻略(第 2 版)》读书笔记

  • tr 可以对来自标准输入的内容进行字符替换、字符删除以及重复字符压缩。
  • tr 只能通过 stdin 而无法通过命令行参数来接受输入。

将输入字符由大写转换成小写

$ echo "HELLO WHO IS THIS" | tr 'A-Z' 'a-z'
hello who is this

'A-Z' 和 'a-z' 都是集合。定义集合:

  1. 定义连续集合的格式:“起始字符-终止字符”。这种写法也可以和其它字符或字符类结合使用。
  2. 如果“起始字符-终止字符”不是一个连续的字符序列,那么它就会被视为包含了 3 个元素的集合:起始字符、-、终止字符。

用 tr 进行加密和解密

用 tr 进行数字加密和解密

$ echo 12345 | tr '0-9' '9876543210'
87654 # 已加密

$ echo 87654 | tr '9876543210' '0-9'
12345 # 已解密

ROT13 加密算法

在 ROT13 算法中,文本加密和解密都使用同一个函数。ROT13 按照字母表排列顺序执行 13 个字母的转换。

# 加密
$ echo "tr came, tr saw, tr conquered." | tr 'a-zA-Z' 'n-za-mN-ZA-M'
ge pnzr, ge fnj, ge pbadhrerq.

# 解密
$ echo "ge pnzr, ge fnj, ge pbadhrerq." | tr 'a-zA-Z' 'n-za-mN-ZA-M'
tr came, tr saw, tr conquered.  

用 tr 删除字符

# 将stdin中的数字删除并打印出来
$ echo "Hello 123 world 456" | tr -d '0-9'
Hello  world

字符集补集

# 从输入文本中将不在补集中的所有字符全部删除
$ echo hello 1 char 2 next 4 | tr -d -c '0-9 \n'
1  2  4

在这里,补集中包含了除数字、空格字符和换行符之外的所有字符。因为指定了-d,所以这些字符全部都被删除。

用 tr 压缩字符

压缩空白字符

$ echo "GNU is       not     UNIX. Recursive   right ?" | tr -s ' '
GNU is not UNIX. Recursive right ?

将文件中的数字列表进行相加

$ cat sum.txt
1
2
3
4
5

$ cat sum.txt | echo $[ $(tr '\n' '+') 0 ]
15

摈除多余的换行符

$ cat multi_blanks.txt | tr -s '\n'
line1
line2
line3
line4

字符类

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

  • alnum:字母和数字
  • alpha:字母
  • blank:水平空白区
  • cntrl:控制(非打印)字符
  • digit:数字
  • graph:图形字符
  • lower:小写字母
  • print:可打印字符
  • punct:标点符号
  • space:空白字符
  • upper:大写字母
  • xdigit:十六进制字符
$ echo "HELLO WHO IS THIS" | tr '[:upper:]' '[:lower:]'
hello who is this

相关文章

  • 2.6 用 tr 进行转换

    《Linux Shell 脚本攻略(第 2 版)》读书笔记 tr 可以对来自标准输入的内容进行字符替换、字符删除以...

  • 简单的文本处理

    一、tr命令 tr命令可以用来删除一段文本中的某些文字,或者将其进行转换。 tr使用方法: tr常用选项: tr常...

  • Linux 学习笔记(十二):文本处理命令

    tr 命令 tr 命令用于删除一段文本信息中的某些文字,或者将其进行转换。使用方式:tr [option]...S...

  • shell 中tr用法讲解

    tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换。 2、删除空白行 3、大小写相互转换 ...

  • sed命令

    sed命令 对比用paste和tr命令将fastq文件转换为fasta文件 paste sed命令 sed用法

  • Shell 脚本大小写转换

    tr tr 命令专门用来转换(或者删除)一些字符。例如 echo class | tr abc 012 得到 2l...

  • 八.Linux之tr命令

    tr为translate的简写,表示转换、转变。 tr命令基本格式 tr [选项] 字符串1 字符串2 <输入文件...

  • css3 2D 3D 过渡

    1.Css32D转换(translate,rotate,scale,skew,matrix) 转换方法: 1.tr...

  • linux: tr

    1. 用途 tr,translate的简写,主要用于压缩重复字符,删除文件中的控制字符以及进行字符转换操作。 2....

  • 2.6 文本文件编辑命令9个(P45-51)——《Linux就该

    9个文本文件编辑命令(2.6 ,P45-51) 命令预览:cat,more,head,tail,tr,wc,sta...

网友评论

      本文标题:2.6 用 tr 进行转换

      本文链接:https://www.haomeiwen.com/subject/qzespqtx.html