千家信息网

tr命令使用简介

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,trtranslate or delete characters(翻译或删除字符)我理解的意思就是对字符进行转换,或者删除不想要的字符tr [OPTION]... SET1 [SET2]将来自标准输入
千家信息网最后更新 2025年02月03日tr命令使用简介

tr

translate or delete characters(翻译或删除字符)

我理解的意思就是对字符进行转换,或者删除不想要的字符

tr [OPTION]... SET1 [SET2]

将来自标准输入的字符从SET1转换为SET2

例:将所有大写转换为小写

#echo "HELLO HOW ARE YOU?" | tr 'A-Z' 'a-z'

注意:只能用于stdin

常用选项:

-c:补集,所谓补集就是除了给定的字符以外的其它所有字符,不能单独使用此选项

-d:删除指定字符

-s:压缩指定的重复字符

用法举例:

-d:通过例子可以看到指定的集合被删除了

#echo "Hello 1 how 2 are 3 you 4 ?" | tr -d '[0-9]' (中括号可以省略)

-c:通过例子可以看到指定的集合为所有数字,空格,换行符,因为有-d选项,所以除了集合之外的都被删除

#echo "Hello 1 how 2 are 3 you 4 ?" | tr -d -c '0-9 \n'

-s:通过例子可以看到,中间重复多余的空格被压缩了后,只显示一个

# echo "Hello 1 how 2 are 3 you 4 ?" | tr -s ' '

定义集合:

'A-Z'和'a-z'都是集合,我们可以按需求追加字符或字符类来构造集合

'起始字符-结束字符':字义连续集合的方式,必须是连续的,若不是连续的,则被定义为3个单的元素,即起 始字符,'-','结束字符';

特殊字符:'\t'为制表符,'\n'为换行符

字符类:

alnum:所有字母和数字

digit:所有的数字

alpha:所有的字母

space:空白字符

upper:所有的大写字符

lower:所有的小写字符

punct:标点符号

xdigit:十六进制字符

使用方法:

tr [:字符类:] [:字符类:]

0