Linux 中的 tr 命令:6 个有用的示例Linux 中的 tr 命令:6 个有用的示例Linux 中的 tr 命令:6 个有用的示例Linux 中的 tr 命令:6 个有用的示例
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux 中的 tr 命令:6 个有用的示例

Linux 中的 tr 命令用于将一组字符执行简单但有用的转换为另一组字符。了解 tr 命令的一些实际示例。

tr 命令中的“tr”代表翻译。这个漂亮的命令用于将一种类型的字符转换为另一种类型的字符。例如,如果您想将文本转换为全部大写或全部小写,则可以使用 tr 命令。

tr 命令足以进行简单快速的翻译,但它无法与 awk 或 sed 命令的强大功能相匹配。

Linux中tr命令的实际例子

tr 命令具有以下语法:

tr [options] charset1 [charset2]

这些是 tr 命令的有用选项:

  • -d :删除第一组中的字符

  • -c :补全第一组字符,即仅对第一组之外的字符进行操作

  • -s :删除第一组中多个相邻出现的字符

  • -t :截断第一组

让我们看看如何在各种用例中使用 tr 命令及其选项。

1. 将小写转换为大写,反之亦然

tr 命令最流行的用途之一是转换大小写。首先让我使用 cat 命令来显示示例文件中的文本。

abhishek@linux:~$ cat sample.txt
This is my life
and my file

现在,如果您想将文本转换为全部大写字母,您需要执行以下操作:

cat sample.txt | tr 'a-z' 'A-Z'

这是上述命令的输出:

abhishek@linux:~$ cat sample.txt | tr ‘a-z’ ‘A-Z’
THIS IS MY LIFE
AND MY FILE

您还可以在此处使用字符类:

abhishek@linux:~$ cat sample.txt | tr [:lower:] [:upper:]
THIS IS MY LIFE
AND MY FILE

要将文本转换为全部小写,您只需交换字符集:

cat sample.txt | tr 'A-Z' 'a-z'

2. 用一组字符替换另一组字符

在上面的示例中,您将小写字母转换为大写字母。同样,您可以将一组字符替换为另一组字符。匹配是在一对一的基础上完成的。

让我用这个例子来解释一下:

abhishek@linux:~$ cat sample.txt | tr ‘ilm’ ‘tyz’
Thts ts zy ytfe
and zy ftye

在这种情况下,第一组字符将按每个字符替换为第二组字符。这里“i”被“t”替换,“l”被“y”替换,“m”被“z”替换。

如果第二组小于第一个,则重复第二组的最后一个字符。换句话说,如果您使用了tr ‘ilm’ ‘ty’,那么‘l’和‘m’都会被替换为‘y’。

此方法的一个实际示例是将() 替换为 {} 或将下划线 (_) 替换为破折号 (-) 之类的。在 Linux 中您也可以用同样的方式将制表符转换为空格。

3. 删除特定字符

如果要删除特定字符,可以使用 tr 命令的 -d 选项:

abhishek@linux:~$ cat sample.txt | tr -d ‘is’
Th my lfe
and my fle

在上面的示例中,“i”和“s”的所有实例都已被删除。如果您期望只删除“is”,那么您就错了。这就是为什么 sed 命令在文本操作方面是更好的选择。

4.删除重复字符,例如多个空格

假设您的文本有多个空格,并且您想要将多个空格替换为单个空格。

我将在此处使用 echo 命令作为示例文本:

abhishek@linux:~$ echo “Text has too many spaces” | tr -s ” “
Text has too many spaces

您还可以将多次出现的某个字符替换为另一个字符。例如,您可以用分号 (;) 替换所有出现的空格。

abhishek@linux:~$ echo “Text has too many spaces” | tr -s ” ” “;”
Text;has;too;many;spaces

5.删除所有非数字字符

假设您的文本同时包含字母和数字,并且您只想保留数字。您可以使用补充选项 -c 并将其与删除选项 -d 结合使用。

abhishek@linux:~$ echo “Phone number is 123456789” | tr -cd [:digit:]
123456789

6. 截断搜索模式

选项 -t 对于截断搜索模式很有用。假设第一组字符比第二组字符大。在这种情况下,第二组中的最后一个字符将替换第一组中的所有剩余字符。

让我用这个例子来解释一下:

abhishek@linux:~$ cat sample.txt | tr ‘isef’ ’12’
Th12 12 my l122
and my 21l2

在上面的示例中,'i' 被替换为 1,所有 s、e 和 f 被替换为 2。如果使用截断选项 -t,它将截断 'is' 处的第一组字符以及剩余的 e 和f 将保持不变:

abhishek@linux:~$ cat sample.txt | tr -t ‘isef’ ’12’
Th12 12 my l1fe
and my f1le

Unix/Linux 中可能还有许多其他 tr 命令的示例。本教程解释了一些利用该命令的各种选项的示例。你可以发挥你的想象力,并在各种情况下使用它们。

我希望本教程对您有所帮助。不要忘记订阅我们的每周新闻通讯并在收件箱中获取有用的 Linux 技巧。

©2015-2025 艾丽卡 support@alaica.com