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’
删除字符串中含有abc的字符
-dc 除了什么都删除掉 tr -dc
用Ctrl + d 显示 只含有字符串abc的字符
-s 压缩重复的字符 tr -s
只压缩连续重复的字符
使用<来重定向标准输入
某些命令能够接受从文件中导入的STDIN
tr ‘a-z’ ‘A-Z’
把输入的字符串变成大写数字不变
tr ‘abcd’ ‘1234’
把abcd 换成对应的1234 显示出来
tr ‘a-z’ ‘A-Z’< /etc/issue
该命令把/etc/issue中的小写字符都转换成大写字符
tr –d abc < /etc/fstab
删除fstab文件中的所有abc中任意字符
使用“<<终止词”命令从键盘把多行重导向给STDIN
直到 终止词 位置的所有文本都发送给STDIN
<< 起始和结束 << (字母,数字,单词必须一致)
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’
ls |tr ‘a-z’ ‘A-Z’ |tr -d ‘\n ‘
把ls 的文件显示成大写 在去掉回车 如图所示
ls /boot/error 2>&1 | tr ‘a-z’ ‘A-Z’ 如果不确定管道前面的命令真假就用2>&1 或者 管道后面跟& ‘|&’
tee 也可以重定向到多个目标
保存不同阶段的输出
复杂管道的故障排除
同时查看的记录输出
用tee命令 即要显示出来也要放到文件中
ls |tee ls.log4
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96371