网站搜索

Linux 中的 10 个 tr 命令示例


trtranslate的缩写)是一个有用的命令行实用程序,可以翻译和/或删除标准输入中的字符并写入标准输出。它是一个在命令行上操作文本的有用程序。

本文将为 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. tecmint. com
www. fossmint. com
www. linuxsay. com
$ cat domains.txt | tr -d '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

6.如果您正在处理的文本中存在序列重复的字符(例如双空格),您可以使用-s选项来压缩字符,只留下它的出现一次。

$ cat domains.txt

www.tecmint.....com
www.fossmint.com
www.linuxsay.com
$ cat domains.txt | tr -s '' 

linux-console.net
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 "linux-console.net =>Linux-HowTos,Guides,Tutorials" | tr " " ":"

linux-console.net:=>Linux-HowTos,Guides,Tutorials

有多个序列字符可以与 tr 一起使用,有关详细信息,请参阅 tr 手册页。

man tr

就这样! tr 是用于在命令行上操作文本的有用命令。在本指南中,我们向 Linux 新手展示了一些有用的 tr 命令使用示例。您可以通过下面的评论表与我们分享您的想法。