📜  Linux Tr命令(1)

📅  最后修改于: 2023-12-03 15:32:40.689000             🧑  作者: Mango

Linux Tr命令

简介

tr 命令是一个Linux下用于替换或删除文件中指定字符的命令。它可以将来自标准输入、文件或者管道的字符转换成任意字符。

语法
tr [OPTIONS] SET1 [SET2]
常用选项
  • -c:反转SET1中所有字符。
  • -d:删除所有SET1中指定的字符。
  • -s:将多余的字符转换成单一的字符。
  • -t:删除所有SET1中指定的字符,并在相应位置插入SET2中指定的字符。
SET(字符集)

SET1SET2 是 1 到多个字符的字符串,用以指定需要变换的字符集。其中 SET1 是必需的,而 SET2 则是可选的。

特殊字符
  • \a:响铃符
  • \b:退格符
  • \f:进纸符
  • \n:换行符
  • \r:回车符
  • \t:制表符
  • \v:垂直制表符
  • \\:反斜杠
  • \num:根据八进制 num 指定的字符,并且必须为三位数。
  • [ccc]:一个或多个字符的组合,即集合(可以使用横杠来定义一个范围)
  • [-ccc]:和上面的类似,只不过-代表负号,表示取反
  • [:class:]:表示类,可以使用下列的一些预定义的类别:
    • [:alnum:]:字母或数字字符
    • [:alpha:]:字母字符
    • [:blank:]:空格或制表符字符
    • [:cntrl:]:控制字符
    • [:digit:]:数字字符
    • [:graph:]:图形字符
    • [:lower:]:小写字母字符
    • [:print:]:可打印字符
    • [:punct:]:标点字符
    • [:space:]:空格字符
    • [:upper:]:大写字母字符
    • [:xdigit:]:十六进制字符
使用示例
将一行字符串中的小写字母转换成大写字母
echo "hello, world" | tr '[:lower:]' '[:upper:]'
HELLO, WORLD
删除指定字符集
echo "hello, world" | tr -d '[:space:]'
hello,world
将字符转换成其 ascii 码
echo "hello, world" | tr '[:print:]' '[*%]'
********************************************************
反转所有字符
echo "hello, world" | tr -c '\n' '*'
hello****
******
总结

tr 命令是一个常用的文本处理工具,常常被用来进行字符集的替换和删除。它的语法和特殊字符比较多,需要经过多次实践和使用才能真正熟练掌握。