重定向和管道及tr tee命令

网友投稿 377 2022-10-30


重定向和管道及tr tee命令

一、重定向

输入重定向,就是将命令的执行结果或者字符串覆盖或者追加到某一个文件中

命令:>(覆盖)  >>(追加)

linux输出结果分三种:

标准输入0:键盘的输入

标准输出1:默认输出到终端窗口

错误输出2:默认输出到终端窗口

根据输出结果输出重定向到文件中:

> 覆盖正确输出结果重定向到文件

2> 覆盖错误输出结果重定向到文件

2>> 追加错误输出结果重定向到文件

&>  覆盖所有输出重定向到文件

&>>  追加所有输出重定向到文件

> file > &1 覆盖所有输出重定向到文件

合并多个程序重定向到文件中

(ls;pwd)> f1 多条命令重定向

>文件内容会被覆盖

set -C:禁止将内容覆盖已有文件,但可以追加强制覆盖:>|

set +C:允许覆盖

>>原有内容基础上,追加内容

输入重定向

命令:<

将文件中的内容传递给命令执行

cat < /etc/fstab

cat << EOF 通常卸载脚本中,执行脚本后在屏幕上显示出来,做提示使用

A

B

C

EOF

二、管道

格式:Command1 | Command2 |.....

管道:将第一条命令的执行结果当做参数传递给第二个命令使用

cat /etc/fstab | mail -s hello tom

mail -s hello tom < /etc/fstab

Command1 | Command2:

如果Command1能够正确执行,则能将结果传递给Command2,如果错误则不能执行

[root@localhost ~]# xecho abcdef | tr -t 'abcde' '11'

bash: xecho: 未找到命令...

相似命令是: 'echo'

如果想将错误的命令也传递给Command2,可采取的方法:

Command1 2>&1 |Command2

Command1 |& Command2

[root@localhost ~]# xecho asdfasdf 2>&1 |tr "a-z" 'A-Z'

BASH: XECHO: 未找到命令...

相似命令是: 'ECHO'

三、tr命令

选项:

-d info:删除匹配到info的信息

[root@localhost ~]# echo abcdefg | tr -d abc

defg

-c info:补集,除了info之外的

[root@localhost ~]# echo abcdefg | tr -cd abc

abc[root@localhost ~]#

-s info:将重复info的去掉,保留一个

[root@localhost ~]# echo aabbbcc | tr -s ab

abcc

‘A-Z’ ‘a-z’: 将所有大写字符转换成小写

[root@localhost ~]# echo aabbbcc | tr 'a-z' 'A-Z'

AABBBCC

-t info1 info2: 按位匹配替换,没有匹配到的位不替换

[root@localhost ~]# echo abcdef | tr -t 'abcde' '11'

11cdef

info1 info2:  将info1中信息全部匹配替换,配有匹配到的用info2的最后一位填满

[root@localhost ~]# echo abcdef | tr 'abcde' '11'

11111f

四、tee命令

将上一级的管道传递古来的信息,保存到文件中,并在屏幕伤显示出来。

ls | tee /testdir/ls.log | tr 'a-z' 'A-Z' > /tmp/who.out

默认是覆盖  -a 是追加


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:重定向详解
下一篇:Java 如何快速,优雅的实现导出Excel
相关文章

 发表评论

暂时没有评论,来抢沙发吧~