linux中tr命令用法,Linux中的tr命令的详细解释

Linux下的tr命令是一个专门用来处理字符的命令,下面由学习啦小编为大家整理了linux下的tr命令的详细解释,希望对大家有帮助!

Linux中的tr命令的详细解释

Linux中的tr命令用于转换或删除文件中的字符。

tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

语法

tr [-cdst][--help][--version][第一字符集][第二字符集]

tr [OPTION]…SET1[SET2]

参数说明:

-c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换

-d, --delete:删除指令字符

-s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符

-t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等

--help:显示程序用法信息

--version:显示程序本身的版本信息

字符集合的范围:

\NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)

\\ 反斜杠

\a Ctrl-G 铃声

\b Ctrl-H 退格符

\f Ctrl-L 走行换页

\n Ctrl-J 新行

\r Ctrl-M 回车

\t Ctrl-I tab键

\v Ctrl-X 水平制表符

CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。

[CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止

[CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)

[:alnum:] :所有字母字符与数字

[:alpha:] :所有字母字符

[:blank:] :所有水平空格

[:cntrl:] :所有控制字符

[:digit:] :所有数字

[:graph:] :所有可打印的字符(不包含空格符)

[:lower:] :所有小写字母

[:print:] :所有可打印的字符(包含空格符)

[:punct:] :所有标点字符

[:space:] :所有水平与垂直空格符

[:upper:] :所有大写字母

[:xdigit:] :所有 16 进位制的数字

[=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)

linux的tr命令的具体例子

1、将文件file中出现的"abc"替换为"xyz"

# cat file | tr "abc" "xyz" > new_file

【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。

2、使用tr命令“统一”字母大小写

(小写 --> 大写)

# cat file | tr [a-z] [A-Z] > new_file

(大写 --> 小写)

# cat file | tr [A-Z] [a-z] > new_file

3、把文件中的数字0-9替换为a-j

# cat file | tr [0-9] [a-j] > new_file

4、删除文件file中出现的"Snail"字符

# cat file | tr -d "Snail" > new_file

【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。

5、删除文件file中出现的换行'\n'、制表'\t'字符

# cat file | tr -d "\n\t" > new_file

不可见字符都得用转义字符来表示的,这个都是统一的。

6、删除“连续着的”重复字母,只保留第一个

# cat file | tr -s [a-zA-Z] > new_file

7、删除空行

# cat file | tr -s "\n" > new_file

8、删除Windows文件“造成”的'^M'字符

# cat file | tr -d "\r" > new_file

或者

# cat file | tr -s "\r" "\n" > new_file

【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者

9、用空格符\040替换制表符\011

# cat file | tr -s "\011" "\040" > new_file

10、把路径变量中的冒号":",替换成换行符"\n"

# echo $PATH | tr -s ":" "\n"

补充:linux的tr命令关于表达字符串的特殊序列

表达字符串的特殊序列

String1 和 String2 变量中所包含的字符串可以使用以下的约定来表示:

C1-C2

指定了 C1 所指定的字符和 C2 所指定的字符之间(包括 C1 和 C2)进行整理的字符串。C1 所指定的字符必须整理放在由 C2 所指定的字符之前。

注:在使用本方法指定子范围时,当前语言环境对结果有重要影响。如果需要用命令来产生与语言环境无关的一致结果,那么应该避免使用子范围。

[C*Number]

Number 是一个整数,它指定了由 C 所指定的字符的重复次数。除非其首位数字是 0,否则 Number 一律视为是十进制整数;如果首位数字是 0,那么视为八进制整数。

[C*]

用 C 指定的字符填写字符串。该选项只用于包含在 String2 中的字符串末尾,它强制 String2 中的字符串具有与由 String1 变量所指定的字符串一样的字符数。*(星号)后面指定的任何字符都被忽略。

[ :ClassName: ]

alnum lower

alpha print

blank punct

cntrl space

digit upper

graph xdigit

除 [:lower:] 和 [:upper:] 转换字符类之外,其他字符类指定的字符都按未指定的顺序放入数组中。由于未定义字符类指定的字符的顺序,仅当目的为将多个字符映射为一个时才使用这些字符。转换字符类除外。

有关字符类的详细情况,请参阅 ctype 子例程。

[ =C= ]

指定所有的字符具有与 C 所指定的字符相同的等价类。

\Octal

指定字符,其编码由 Octal 所指定的八进制值表示。Octal 可以是 1 位、2 位 或 3 位八进制整数。空字符可以用 '\0' 表示,并可以像任何其他的字符那样进行处理。

\ControlCharacter

指定与 ControlCharacter 所指定的值相应的控制字符。可以表示以下值:

\a 警告

\b 退格键

\f 换页

\n 换行

\r 回车

\t 制表键

\v 垂直制表键

\\

规定 "\"(反斜杠)就是作反斜杠使用,而无作为转义字符的任何特殊意义。

\[

指定“[”(左括号)就作为左括号使用,而无作为特定字符串序列的开始字符的任何特殊意义。

\-

指定“-”(负号)就作为负号使用,而无作为范围分隔符的任何特殊意义。

如果某个字符在 String1 中被指定过多次,那么该字符就被转换成 String2 中为与 String1 中最后出现的字符相对应的字符。

如果由 String1 和 String2 指定的字符串长度不相同,那么 tr 命令就会忽略较长一个字符串中的多余字符。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: tr命令Linux的一个文本处理工具,用于对文本进行字符转换和替换操作。它可以将一个字符集的字符替换为另一个字符集的字符,也可以删除指定字符集的字符。tr命令的基本语法为: tr [OPTION] SET1 [SET2] 其,OPTION为可选参数,SET1为需要替换或删除的字符集,SET2为替换后的字符集。如果只指定SET1,则表示删除SET1的字符。常用的选项包括: -c:取反,即替换SET1没有出现的字符; -d:删除SET1的字符; -s:压缩,即将SET1连续出现的重复字符压缩为一个字符。 例如,将文件的所有小写字母转换为大写字母: tr 'a-z' 'A-Z' < file.txt 将文件的所有空格替换为下划线: tr ' ' '_' < file.txt 删除文件的所有数字: tr -d '-9' < file.txt 压缩文件的重复字符: tr -s 'a-z' < file.txt ### 回答2: Linuxtr命令是一个十分强大且重要的命令,它主要用于对文本进行字符替换、删除或转换等操作。在Linux系统tr命令用法和参数非常丰富,下面我们将详细介绍其常用的用法。 1.tr命令的基本语法 tr [option] set1 set2 其,option为可选参数,set1和set2分别表示字符集1和字符集2。 2.tr命令的功能 tr命令的主要功能是对输入的字符集进行转换、删除、替换等操作。 3.tr命令的常用参数 (1)-d,表示删除字符 例如以下命令将从文本文件删除所有的数字: $ cat file.txt | tr -d ‘0-9’ > newfile.txt (2)-s,表示压缩字符 例如以下命令将重复的字符压缩成一个字符: $ cat file.txt | tr -s ‘a’ ‘b’ > newfile.txt (3)-c,表示补全字符 例如以下命令将把除了a、b以外的其他字符都替换为’-‘: $ cat file.txt | tr -c ‘ab’ ‘-’ > newfile.txt (4)-t,表示删除字符 例如以下命令将把文本文件的大写字母转换为小写字母: $ cat file.txt | tr -t ‘[:upper:]’ ‘[:lower:]’ > newfile.txt (5)-r,表示替换字符 例如以下命令将把文本文件的a替换为b: $ cat file.txt | tr ‘a’ ‘b’ > newfile.txt 4.总结 以上便是Linuxtr命令的常用用法和参数。其tr命令十分有用,主要用于字符集的转换、删除、替换等操作,熟练掌握它的各种用法和参数,能够在Linux系统快速、高效地完成各种文本处理任务。希望对大家有所帮助。 ### 回答3: tr命令是一个常见的Linux命令,可以用于转换或删除字符。tr命令的基本语法为:tr [OPTION]... SET1 [SET2]。其,OPTION是可选的命令选项,SET1是要转换或删除的字符集合,SET2是用于替换字符集SET1的字符集合。 tr命令的一些常见选项和用法如下: 1. -d选项:删除指定字符,例如:tr -d 'aeiou'将删除输入文本的所有元音字母。 2. -s选项:压缩字符集,例如:tr -s ' '将多余的空格压缩成一个空格。 3. -c选项:取反字符集,例如:tr -c 'a-z' '0-9'将所有非小写字母替换为数字。 4. SET选项:SET可以是字符范围或字符列表,例如:tr 'a-z' 'A-Z'将小写字母转换为大写字母。 5. SET1和SET2的长度不相等:如果SET1和SET2的长度不相等,tr命令会将SET1的字符用SET2的最后一个字符进行替换。例如:tr 'abc' '12'将'a'转换为'1','b'转换为'2','c'转换为'2'。 6. 文件重定向:tr命令还可以使用文件重定向,例如:tr 'a-z' 'A-Z' < input.txt > output.txt将input.txt的小写字母转换为大写字母,并将结果输出到output.txt。 总之,tr命令是一个非常有用的转换和删除字符的工具,可以轻松地完成一些文本处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值