Linux tr
命令可以在输入的字符流中进行字符替换(translate)操作,也可以删除特定字符,或者进行字符映射。通常它的语法如下:
tr OPTION... SET1 [SET2]
SET1
:需要进行操作的字符集。SET2
:如果指定此参数,表示 SET1 中的字符将替换为 SET2 中对应位置的字符;如果此参数未指定,则代表删除 SET1 中的字符。
tr
命令常用的选项如下:
-c
:表示操作 SET1 以外的所有字符。-d
:表示删除 SET1 中所有字符。-s
:表示把 SET1 中所有连续的重复字符缩成一个。
下面举例说明 tr
的使用:
- 示例一:将字符串中的所有大写字母转换成小写字母。
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
# 输出: hello world
在示例中,通过在字符集指定 A-Z
和 a-z
,tr
命令会将输入的字符串中所有大写字母转换成小写字母。这里的参数 A-Z
和 a-z
可以看做是两个待对映关系的字符集。
- 示例二:将字符串中的所有非字母字符删除。
echo "ab*c-d_ef" | tr -d -c '[:alpha:]'
# 输出: abcdef
在示例中,通过在字符集指定 [:alpha:]
(表示所有字母字符)并使用 -c
选项,tr
命令会删除除字母外的其他字符。注意,此处必须使用 -d
和 -c
两个选项的结合(因为要删除字符),所以不能使用 tr [:punct:] ' '
这样的形式来删除。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Linux tr命令:对文件进行字符替换和转换 - Python技术站