管道
管道是Linux中很重要的一种通信方式,它是把一个程序的输出直接连接到另一个程序的输入。常说的管道一般是指无名管道(例如“|”),无名管道只能用于具有”亲缘” 关系进程之间的通信 。管道符和重定向符号可以在一条命令里出现
使用“ | ”将前一个进程的输出直接送入后一个进程的输入
例:ls -l | head -100
允许多重管道 ,也允许管道和重定向连用
例:ls –l | head -100 | more
例:ls | grep u | wc -l
在ls的结果里查找包含”u”的文件和文件夹,然后数出一共有多少行
综合应用
新建一个file1,里面内容如下:
cat file1 | grep root
查找文件file1中包含"root"的内容
查找包含root的内容.png
cat file1 | grep ^root
查找文件file1中以"root"开头的内容
查找以root开头的内容.png
cat file1 | grep -v ^# | grep -v ^$ > file2
查找文件file1中不以#开头并且非空行的内容,并写入file2文件中
file2.png
cat file1 | tee file3 | grep -v ^# | tee file4 | grep -v ^$ | tee file5 > file6
将文件file1里的内容写入到file3中,筛选出不以#开头的内容,写入到file4中,再筛选出非空行的行,写入到file5中,最后将内容写入到file6中
file3.png file4.png file5.png file6.png
网友评论