首页 > 代码库 > Linux上的IO重定向及管道-&> &>> 2> 2>> 2>&1 2>>&1 | tee tr
Linux上的IO重定向及管道-&> &>> 2> 2>> 2>&1 2>>&1 | tee tr
IO重定向:
输出重定向:>
特性:覆盖输出
输出重定向:>>
特性:追加输出
# set -C
禁止覆盖输出重定向至已存在的文件;
此时可使用强制覆盖输出:>|
# set +C
关闭上述特性
错误输出流重定向:2>, 2>> 只会将错误的信息输出到指定的地方
合并正常输出流和错误输出流:
(1) &>, &>>
(2) COMMAND > /path/to/somefile 2>&1
COMMAND >> /path/to/somefile 2>&1
[root@app1 tmp]# ech "next" > a.txt -bash: ech: command not found [root@app1 tmp]# ech "next" > a.txt 2>&1 [root@app1 tmp]# ech "next" &> a.txt [root@app1 tmp]# ech "next" 2> a.txt
特殊设备:/dev/null,代表空
COMMAND > /dev/null:代表所有的输出信息都不会显示,直接到/dev/null里面去
使用演示:
[root@app1 tmp]# echo "hello" > a.txt [root@app1 tmp]# cat a.txt hello [root@app1 tmp]# echo "next" >> a.txt [root@app1 tmp]# cat a.txt hello next [root@app1 tmp]# ech "next" > a.txt -bash: ech: command not found [root@app1 tmp]# cat a.txt [root@app1 tmp]# ech "next" 2> a.txt [root@app1 tmp]# cat a.txt -bash: ech: command not found [root@app1 tmp]# ech "next" &>> a.txt [root@app1 tmp]# cat a.txt -bash: ech: command not found -bash: ech: command not found [root@app1 tmp]# ech "next" > /dev/null -bash: ech: command not found [root@app1 tmp]# ech "next" &> /dev/null
输入重定向:
输入重定向:<
特性:覆盖输入
输入重定向:<<
特性:追加输入
使用演示:
1、 [root@app1 tmp]# cat << EOF >a.txt > I > wish > nothing > but > the > best > for > you > ! > EOF [root@app1 tmp]# cat a.txt I wish nothing but the best for you ! 2、 [root@app1 tmp]# cat > a.txt << EOF > l > o > v > e > EOF [root@app1 tmp]# cat a.txt l o v e
tr命令:
tr [OPTION]... SET1 [SET2]
把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符
用法1:
tr SET1 SET2 < /PATH/FROM/SOMEFILE
用法2:
tr -d SET1 < /PATH/FROM/SOMEFILE
注意:不修改原文件,只显示出来
[root@app1 tmp]# tr -d o < a.txt l v e [root@app1 tmp]# cat a.txt l o v e [root@app1 tmp]# tr "a-z" "A-Z" < a.txt L O V E
管道:连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流
COMMAND1 | COMMAND2 | COMMAND3 | ...
把/etc/passwd文件的前6行的信息转换为大写字符后输出; [root@app1 tmp]# head -n 6 /etc/passwd | tr ‘a-z‘ ‘A-Z‘ ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC
tee命令:将前一个命令的执行结果通过管道覆盖到一个文件中
[root@app1 tmp]# cat a.txt | tee b.txt l o v e [root@app1 tmp]# cat b.txt l o v e
本文出自 “汪立明” 博客,请务必保留此出处http://afterdawn.blog.51cto.com/7503144/1855782
Linux上的IO重定向及管道-&> &>> 2> 2>> 2>&1 2>>&1 | tee tr