方法示例中如何使用Linux tr命令

在Linux上,tr命令用于转换字符,并且需要两个字符集。用第二组对应的字符替换第一组中出现的字符。例如,可以使用tr命令将小写字母更改为大写字母,依此类推。

如果字符串长度相同,则set1中每个字符的出现将被set2中的相应字符替换。如果set1长于set2,则tr命令将set2的最后一个字符分配给指定字符串末尾之后的每个未指定位置。

目录

  • tr命令及其语法
  • 1)使用tr命令更改大小写
  • 2)删除字符出现,删除空字符
  • 3)用另一个字符集替换不匹配的字符
  • 4)替换相同的字符序列
  • 5)将每个字符序列转换为单个换行符
  • 6)创建文件中包含的唯一单词的列表,每行一个
  • 7)按字母顺序对tr命令获得的结果进行排序

tr命令及其语法

首先,让我们看一下tr命令的一些语法。

tr [options] "set1" "set2"
echo "something to translate" | tr  "set1" "set2"
tr "set1" "set2" < file-to-translate
tr "set1" "set2" < file-to-translate > file-output

1)使用tr命令更改大小写

将单词“ Welcome”翻译成大写。

# echo "welcome to linoxide" | tr [:lower:] [:upper:] 
WELCOME TO LINOXIDE

输入文件,并将结果仅打印到控制台的标准输出。文件不受影响

# cat file Can you see how tr command can be wonderful?

# tr "a-z" "A-Z" < file 
CAN YOU SEE HOW TR COMMAND CAN BE WONDERFUL?

# cat file
Can you see how tr command can be wonderful?

输入文件并将结果打印到另一个文件并保存。原始文件不受影响并保存了结果。

# tr "a-z" "A-Z" < file > output

# cat output
CAN YOU SEE HOW TR COMMAND CAN BE WONDERFUL?

2)删除字符出现,删除空字符

-d 该选项将删除所有出现的指定字符。

# echo "Can you see how tr command can be wonderful?" | tr -d "cawe?" 
Cn you s ho tr ommnd n b ondrful
# echo "Abc123d56E" | tr -d '[[:digit:]]'
AbcdE

要从文件中删除所有空字符:

tr -d '' < file > output

3)用另一个字符集替换不匹配的字符

-c 选项用于将不匹配的字符替换为另一个字符集。对ASCII码为八进制的01到0377的字符的宇宙补充set1。

# echo "Abc123d56E" | tr -c 'A' 't'
Atttttttttt

4)替换相同的字符序列

-s 该选项将每个重复的换行符序列转换为单个换行符。即,替换多个空格。

# echo "Can you see how tr command can be wonderful?" | tr -s " " "/" 
Can/you/see/how/tr/command/can/be/wonderful?
#echo "Can you see how tr command can be wonderful? | tr -s '[:space:]' '#'
Can#you#see#how#tr#command#can#be#wonderful?#

5)将每个字符序列转换为单个换行符

将每个小写非大写字符序列转换为单个换行符。 *(星号) TR 该命令重复换行符的次数足以使第二个字符串与第一个字符串一样长。

# cat file | tr -cs "[:alpha:]" "n"
Can
you
see
how
tr
command
can
be
wonderful

6)创建文件中包含的唯一单词的列表,每行一个

 # cat file | tr -cs "[:alnum:]" "n" | sort | uniq -c | sort -rn
      1 you
      1 wonderful
      1 tr
      1 see
      1 how
      1 command
      1 Can
      1 can
      1 be

7)按字母顺序对tr命令获得的结果进行排序

以下命令列出了访问日志中列出的所有用户,并按字母顺序排序。

# cat /var/log/squid/access.log | tr -s ' ' | cut -d ' ' -f 13 |sort |uniq

既然您知道了tr命令的作用,您就知道了使用它的不同方法。这是一个功能强大的linux命令,用于关联不同的选项,因为它可以与另一个命令进行排序。有关更多信息,请参见tr命令手册页。

另请阅读:

  • 8个Linux Tee命令和示例
  • 106 Linux命令-带有示例的概述
Sidebar