TR | TEE

tr命令 管道 tee

tr 有转换和删除字符作用

tr [OPTION]…SET1[SET2]…

选项:

-c  -C(–complement) : 取字符集的补集(取反)

-d (–delete) : 删除所有属于第一字符集的字符

-s (–squeeze-repeats): 把连续重复的字符以单独一个字符表示

-t  (–truncate-set1) : 将第一个字符集对应字符转化为第二个字符集对应的字符

[:alnum:]:字母和数字 [:alpha:]:字母          [:cntrl:]:控制(非打印)字符 [:digit:]:数字

[:graph:]: 图形字符     [:lower:]:小写字母  [:print:]:可打印字符                 [:punct:]:标点符号

[:space:]:空白字符      [:upper:]:大写字母 [:xdigit:]:十六进制字符

 

-d 删除  tr  -d  ‘abc’

KK3K5%S{7LGY`}E3QMBDY~9

删除字符串中含有abc的字符

-dc  除了什么都删除掉 tr  -dc

58I7HT]JLC]L~(WUIF_9(FR

用Ctrl + d  显示 只含有字符串abc的字符

-s  压缩重复的字符 tr  -s

48)B40R)M8$PWCYY0`H%6R3

只压缩连续重复的字符

使用<来重定向标准输入

某些命令能够接受从文件中导入的STDIN

tr ‘a-z’ ‘A-Z’

ZA_Q7ACP~{6U}{T13}L]Q~F

把输入的字符串变成大写数字不变

tr  ‘abcd’  ‘1234’

{O}B1_7YA6CF[U[T7{R{J[4

把abcd 换成对应的1234 显示出来

tr ‘a-z’ ‘A-Z’< /etc/issue

785}2YW5_@~5MZD_[7Z~0[N

该命令把/etc/issue中的小写字符都转换成大写字符

tr –d abc < /etc/fstab

A0GE@ES[(Z5`W623QM)`3QS

删除fstab文件中的所有abc中任意字符

使用“<<终止词”命令从键盘把多行重导向给STDIN

直到 终止词 位置的所有文本都发送给STDIN

H0SGY55J71CAU_X7T}8JXBF

<< 起始和结束   << (字母,数字,单词必须一致)

tr ‘a-z’ ‘A-Z’ <<f ox

>

 

>fox

管道(pipe)用符号   |   表示

命令1 | 命令2 | 命令3 ……

将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN

STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现

最后一个命令会在当前shell进程的子shell进程中执行用来

hostname | tr ‘a-z’ ‘A-Z’

})B@[D0TS4Y%$C5SZ_XX[EY

ls |tr ‘a-z’ ‘A-Z’ |tr  -d  ‘\n ‘

WN70N$3R00LZ}UOPONM[[~6

把ls 的文件显示成大写 在去掉回车 如图所示

ls /boot/error  2>&1 | tr ‘a-z’ ‘A-Z’   如果不确定管道前面的命令真假就用2>&1  或者 管道后面跟&  ‘|&’

M(_$(Y}V0(N8QO)SO{$9K85

tee 也可以重定向到多个目标

保存不同阶段的输出

复杂管道的故障排除

同时查看的记录输出

用tee命令 即要显示出来也要放到文件中

ls |tee  ls.log4

%ZU674$(XWI{])T)}IIDFAW

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96371

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code