tr
(translate)是一个 Linux 命令行工具,用于从标准输入(stdin)读取数据并将字符集转换为另一个字符集。
虽然 tr
命令不支持正则表达式,但它提供了类似的功能,可以用于字符转换、删除和压缩。
下面是一些常见的 tr
用法
echo "hello world" | tr 'a-z' 'A-Z'
这个命令会将小写字母转换为大写字母,输出 “HELLO WORLD”。
echo "hello world" | tr -d 'o'
这个命令会删除所有的 ‘o’ 字符,输出 “hell wrld”。
echo "hello world" | tr -s ' '
这个命令会将连续的空格字符压缩为单个空格字符,输出 “hello world”。
echo "hello world" | tr 'a-z' 'A-Z' | tr -d 'L'
这个命令会首先将小写字母转换为大写字母,然后删除所有的 ‘L’ 字符,输出 “HEO WORD”。
虽然 tr
不支持正则表达式,但您可以使用其他工具(如 sed
或 awk
)实现类似的功能。
下面是一些使用正则表达式的 sed
示例:
echo "hello world" | sed 's/[aeiou]/_/g'
这个命令会将所有的元音替换为下划线,输出 “h_ll_ w_rld”。
echo "hello world" | sed 's/[aeiou]//g'
这个命令会删除所有的元音,输出 “hll wrld”。
echo "hello world" | sed 's/[aeiou]/&_&/g'
这个命令会在每个元音前后插入相同的元音,输出 “heeelloo woorld”。
通过熟练掌握这些工具,您可以实现许多高级功能。
尽管 tr
不支持正则表达式,但它在字符转换、删除和压缩方面非常有用。
同时,sed
和 awk
等工具为您提供了更强大的文本处理功能。