介绍
tr(翻译)命令是一个 Linux 实用程序,允许您对文本输入执行各种转换。无论您是需要更改大小写、删除重复字符、删除字符、设置补码还是删除换行符,tr 都可以处理。在本文中,我们将探讨 tr 命令提供的各种选项,并向您展示如何使用它们来转换文本。
tr 命令的语法
'tr'命令的基本语法如下:
$ tr SET1 SET2 < inputfile
其中
SET1 是一组要替换为 SET2 中相应字符的字符。
SET2 是一组字符,用于替换 SET1 中的相应字符。
input file 是要处理的输入文件,可以省略并替换为 STDIN(标准输入)的输入。
请注意,“SET1”和“SET2”中的字符可以通过多种方式指定,包括单个字符、字符范围和用于翻译的特殊字符。字符也可以用八进制或十六进制表示法指定。
例如,tr 命令将输入字符串“Hello World”中的大写字符替换为小写等效字符。SET1 中的字符指定为“H”,SET2 中的字符指定为“Y”。
$ echo "Hello World" | tr H Y
Yello world
在 Linux 中使用 tr 命令更改字符大小写
TR 可用于以三种不同的方式更改输入文本的大小写:指定要转换的确切字符、指定转换的字符范围以及指定解释的字符串。
为 tr 命令指定精确字符
使用此选项,您可以指定要转换的输入文本的哪些字符。tr 命令将 SET1 的字符替换为 SET2 的字符。例如
$ echo "Hello World" | tr [A-Z] [a-z]
hello world
使用 tr 更改字符大小写的另一种方法是指定字符范围。这允许 tr 更改指定范围内任何字符的大小写。以下示例说明如何将大写字符转换为小写字符
$ echo "Hello World" | tr [A-Z] [a-z]
hello world
指定 tr 命令的字符范围
通过指定解释序列来匹配和转换字符。例如,小写字符序列是 [:lower:],大写字符序列是 [:upper:]。指定这两个序列会告诉 tr 比较和转换字符的大小写
$ echo "HELLO WORLD" | tr [:upper:] [:lower:]
hello world
在 Linux 中使用 tr 命令删除重复字符
tr 的“-s”选项可用于将重复字符压缩到单个实例中。当将空格转换为制表符或换行符并且输入文本包含多个连续空格时,此选项特别有用。例如,以下输入包含多个空格
$ echo "Hello World"
Hello World
将这些空格转换为制表符大致得到
$ echo "Hello World" | tr ' ' '\t'
Hello World
为了避免输出中出现多个制表符和空格,您可以使用 -s 选项
$ echo "Hello World" | tr -s ' ' '\t'
Hello World
在 Linux 中使用 tr 命令删除字符
使用 -d 选项从输入中删除特定字符。在以下示例中,tr 删除字符 e 的每个实例
$ echo "Hello World" | tr -d 'e'
Hllo World
还可以通过指定解释字符串来删除一组字符。例如,通过指定序列 [:d igit:] 删除所有数字
$ echo "Hello 123 World" | tr -d [:digit:]
Hello World
补码集
使用“-c”选项完成 SET1 中的字符。这意味着所有不在指定集中的字符都将被删除。在以下示例中,我们删除了除数字之外的所有字符
$ echo "Hello 123 World" | tr -c [:digit:]
123
在 Linux 中使用 tr 命令删除音调符号
变音符号是添加到字母中的符号,例如重音符号,用于改变字母的发音。序列 [=CHAR=] 可用于匹配与指定字符等效的所有字符。这对于从字符中删除变音符号很有用。
例如,以下命令使用 tr 从字符中删除变音符号
$ echo "résumé" | tr -d '[=e=]'
rsum
在 Linux 中使用 tr 命令单独打印每个单词
有时,逐行打印文件内容或在本例中逐字打印文件内容会很有用。tr 命令可用于实现此目的,方法是使用 -c 选项并将非字母数字字符替换为换行符。
下面是如何单独打印文件的每个单词的示例:
$ cat file.txt | tr -c '[:alnum:]
' '[
*]'
结论
总之,tr 命令是一种多功能且功能强大的工具,用于在 Linux 上转换文本。它允许您执行各种操作,例如切换大小写、删除重复字符、删除字符、补充集、删除换行符、重定向输入、截断集、删除变音符号、单独打印每个单词并将输出保存在文件中。.本教程通过实际示例演示了这些函数,让您清楚地了解如何使用 tr 命令。无论您是新手还是高级 Linux 用户,该工具的多种用途都绝对值得探索。查看其他 Linux 文本实用程序,如排序命令、无寻呼终端或最佳 Linux 文本编辑器,以进一步增强您的知识和经验。