千家信息网

重定向和管道及tr tee命令

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,一、重定向输入重定向,就是将命令的执行结果或者字符串覆盖或者追加到某一个文件中命令:>(覆盖) >>(追加)linux输出结果分三种:标准输入0:键盘的输入标准输出1:默认输出到终端窗口错误输出2:默
千家信息网最后更新 2024年11月24日重定向和管道及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 是追加





0