管道,输出,管道,重定向,grep

Posted 代码顽童

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管道,输出,管道,重定向,grep相关的知识,希望对你有一定的参考价值。

输出:
大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)
> 是覆盖原有内容
>> 是追加内容

2> 是错误内容覆盖
>> 是错误内容追加重定向
[[email protected] ~]$ sdfsdfsdf > a.txt
bash: sdfsdfsdf: 未找到命令...
[[email protected] ~]$ sdfsdfsdf 2>a.txt

[[email protected] ~]$ echo ‘123‘ > ture.txt

&> 是错误(正确)都可以内容覆盖
&>> 是错误(正确)都可以内容追加重定向

正确与错误的内容分别添加到不同文件
[[email protected] ~]$ date 2>err.txt >ture.txt
[[email protected] ~]$ cat err.txt
[[email protected] ~]$ cat ture.txt
2017年 06月 12日 星期一 15:48:13 CST


输入:
小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入

[[email protected] ~]$ cat err.txt
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[[email protected] ~]$ tr ‘a-z‘ ‘A-Z‘ <err.txt #把err.txt的内容输入转换为大写
127.0.0.1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST4 LOCALHOST4.LOCALDOMAIN4
::1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST6 LOCALHOST6.LOCALDOMAIN6
[[email protected] ~]$

 

 


grep:

#在passwd中含有passwd的行全部过滤出来
[[email protected] ~]$ cp /etc/passwd .
[[email protected] ~]$ grep root passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]$ grep -n root passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]$ grep ^root passwd
root:x:0:0:root:/root:/bin/bash

#在passwd中含有yuq的行全部过滤出来
[[email protected] ~]$ grep yuq passwd
yuq:x:1000:1000:yuq:/home/yuq:/bin/bash
#在passwd中含有yuq(包括大小写)的行全部过滤出来
[[email protected] ~]$ grep -i yuq passwd
yuq:x:1000:1000:yuq:/home/yuq:/bin/bash
Yuq:x:1000:

#在passwd中含有yuq(包括大小写)的行全部反向过滤出来
[[email protected] ~]$ grep -inv yuq passwd

#找到关键字的下面三行
[[email protected] ~]$ grep -n -A3 root passwd

#找到关键字的上面三行
[[email protected] ~]$ grep -n -B3 yuq passwd

#找到关键字的上面三行和下面三行
grep -n -C3 yuq passwd

grep还可用正则表达式

 


管道:
把前一条命令的结果当成一个命令输入
[[email protected] ~]$ ls -a |grep *.txt
a.txt
结合本例就是先显示所有的文件,然后再用grep命令在ls的结果中查找包含*.txt的文件。

先把一个命令结果写入一个文件,再从文件中过滤
[[email protected] ~]$ ifconfig lo > a.txt
[[email protected] ~]$ grep ‘inet ‘ a.txt
inet 127.0.0.1 netmask 255.0.0.0

#用管道实现
[[email protected] ~]$ ifconfig lo | grep -n ‘inet ‘
2: inet 127.0.0.1 netmask 255.0.0.0

# tee把前面命令的结果写入a.txt(覆盖)
ifconfig lo | tee a.txt |grep ‘inet‘

# 查看/etc/passwrod的11~15行
[[email protected] ~]$ head -14 /etc/passwd | tail -5
[[email protected] ~]$ cat -n /etc/passwd |head -15|tail -5

 

以上是关于管道,输出,管道,重定向,grep的主要内容,如果未能解决你的问题,请参考以下文章

Linux中重定向管道和grep命令总结

Linux中重定向管道和grep命令总结

linux 管道,输出重定向,后端执行

Linux - Linux中的重定向和管道符

取编译参数时遇到的管道重定向问题

LINUX03_磁盘情况查询ps -efcentos7查看服务netstat查看网络grep重定向管道yum用户权限