Linux tr 命令
介绍
tr (translate) 命令是一个 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 命令删除重复字符
‘-s’ 选项对 tr 很有用,因为它可以将重复的字符压缩为单个实例。此选项在将空格转换为制表符或换行符并且输入文本包含多个连续空格时尤其有用。例如,以下输入包含多个空格:
$ 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
您还可以通过指定解释的字符串来删除一组字符。例如,通过指定序列 [:digit:] 来删除所有数字:
$ 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 文本实用程序,如 sort 命令、无分页终端或最佳 Linux 文本编辑器,以进一步增强您的知识和经验。