Linux 中的 10 个 tr 命令示例
tr(translate的缩写)是一个实用的命令行实用程序,它可以翻译和/或删除 stdin 输入中的字符并写入 stdout。它是一个用于在命令行上处理文本的有用程序。
本文将为Linux 新手讲解一些有用的tr 命令示例。
运行tr 命令的语法如下,其中SET1中的字符被转换为SET2中的字符。
$ tr flags [SET1] [SET2]
Linux tr 命令示例
1.一个简单的tr 命令用例是将文本中的所有小写字母更改为大写,反之亦然,如下所示。
$ cat linux.txt linux is my life linux has changed my life linux is best and everthing to me..:)
$ cat linux.txt | tr [:lower:] [:upper:] LINUX IS MY LIFE LINUX HAS CHANGED MY LIFE LINUX IS BEST AND EVERTHING TO ME..:)
2.或者,您可以使用以下命令将文件中的所有小写字母更改为大写,如下所示。
$ cat linux.txt | tr [a-z] [A-Z] LINUX IS MY LIFE LINUX HAS CHANGED MY LIFE LINUX IS BEST AND EVERTHING TO ME..:)
3.要将写入stdout的结果保存在文件中以供稍后处理,请使用 shell 的输出重定向功能,(>)
如图所示。
$ cat linux.txt | tr [a-z] [A-Z] >output.txt $ cat output.txt LINUX IS MY LIFE LINUX HAS CHANGED MY LIFE LINUX IS BEST AND EVERTHING TO ME..:)
4.关于重定向,您可以使用输入重定向将输入发送到tr,并使用相同的命令将输出重定向到文件,如图所示。
$ tr [a-z] [A-Z] < linux.txt >output.txt
5.另一个有用的功能是,您可以使用-d
标志删除字符,例如,使用以下命令删除域名中的空格。
$ cat domains.txt www. example. com www. fossmint. com www. linuxsay. com
$ cat domains.txt | tr -d '' www.example.com www.fossmint.com www.linuxsay.com
6.如果您正在处理的文本中序列中有重复的字符(例如双倍空格),则可以使用该-s
选项压缩字符,只留下一次出现。
$ cat domains.txt www.example.....com www.fossmint.com www.linuxsay.com
$ cat domains.txt | tr -s '' www.example.com www.fossmint.com www.linuxsay.com
7.该-c
选项告诉tr使用给定SET中的补码。在此示例中,我们要删除所有字母,仅保留UID。
$ echo "My UID is $UID" | tr -cd "[:digit:]\n" OR $ echo "My UID is $UID" | tr -d "a-zA-Z"
8.下面是将单行单词(句子)分成多行的示例,其中每个单词单独出现。
$ echo "My UID is $UID" My UID is 1000 $ echo "My UID is $UID" | tr " " "\n" My UID is 1000
9.与前面的示例相关,您还可以将多行单词翻译成一个句子,如下所示。
$ cat uid.txt My UID is 1000 $ tr "\n" " " < uid.txt My UID is 1000
10.也可以只翻译单个字符,例如将空格翻译成“ : ”
字符,如下所示。
$ echo "Example.com =>Linux-HowTos,Guides,Tutorials" | tr " " ":" Example.com:=>Linux-HowTos,Guides,Tutorials
您可以将多个序列字符与tr一起使用,有关更多信息,请参阅tr手册页。
$ man tr
就这些!tr是一个用于在命令行上操作文本的有用命令。在本指南中,我们为 Linux 新手展示了一些有用的tr 命令使用示例。您可以通过下面的评论表与我们分享您的想法。