Linux管道和过滤器,UNIX 管道和过滤器

您可以连接在一起,使两个命令从一个程序的输出成为下一个程序的输入。以这种方式连接的两个或多个命令可以形成一个管。

要制作一个管道,放了两个命令在命令行之间的竖线(|)。

当一个程序将其从另一个程序的输入,该输入执行某些操作,并写入到标准输出的结果,它被称为作为一个过滤器。

grep命令:

grep程序搜索一个或多个文件的​​行有一定的模式。语法是:

$grep pattern file(s)

这个名字源于“grep”的ED(UNIX行编辑器)命令g/re/p指“全局搜索所有包含一个正则表达式和打印。”

正则表达式是一些纯文本(一个字,例如)和/或特殊字符用于模式匹配。

grep最简单的用法是看一个字组成的一个模式。它可以用在管道中,因而只有那些行包含一个给定的字符串的输入文件被发送到标准输出。如果你不给grep的读取一个文件名时,它读取标准输入的所有过滤方案的工作方式:

$ls-l|grep"Aug"-rw-rw-rw-1john doc11008Aug614:10ch02-rw-rw-rw-1john doc8515Aug615:30ch07-rw-rw-r--1john doc2488Aug1510:51intro-rw-rw-r--1carol doc1605Aug2307:35macros

$

有各种不同的选项,可以一起使用grep命令:

Option

描述

-v

Print all lines that do not match pattern.

-n

Print the matched line and its line number.

-l

Print only the names of files with matching lines (letter "l")

-c

Print only the count of matching lines.

-i

Match either upper- or lowercase.

接下来,让我们使用一个正则表达式,告诉grep来查找线“carol”,由零个或多个其他字符在正则表达式简称为“*”),再其次是“Aug”。

在这里,我们使用-i选项来区分大小写的搜索:

$ls-l|grep-i"carol.*aug"-rw-rw-r--1carol doc1605Aug2307:35macros

$

sort命令:

sort命令安排行的文字,字母或数字。下面的例子各种行在food文件:

$sort foodAfghaniCuisineBangkokWokBigAppleDeliIsleofJavaMandalaySushiandSashimiSweetToothTioPepe's Peppers

$

sort命令默认情况下,按字母顺序排列的文本行。有很多的选择,控制排序:

Option

描述

-n

Sort numerically (example: 10 will sort after 2), ignore blanks and tabs.

-r

Reverse the order of sort.

-f

Sort upper- and lowercase together.

+x

Ignore first x fields when sorting.

超过两个命令可以链接到一个管道。以先前的管道使用grep的例子,我们可以进一步在August 修改的文件大小顺序进行排序。

下面的管道由命令ls,grep和排序:

$ls-l|grep"Aug"|sort+4n-rw-rw-r--1carol doc1605Aug2307:35macros-rw-rw-r--1john doc2488Aug1510:51intro-rw-rw-rw-1john doc8515Aug615:30ch07-rw-rw-rw-1john doc11008Aug614:10ch02

$

August 大小顺序修改这条管道在你的目录中的所有文件进行排序,并将它们打印到终端屏幕。行数字顺序排序选项+4Ñ跳过四个字段(字段由空格分隔),然后排序。

pg 和更多的命令:

一个长的输出通常会压缩在屏幕上,但如果你运行文本通过或pg作为一个过滤器,每屏显示的文本后,显示停止。

让我们假设你有一个长的目录列表。为了使其更易于阅读排序列表,通过管道输出如下:

$ls-l|grep"Aug"|sort+4n|more-rw-rw-r--1carol doc1605Aug2307:35macros-rw-rw-r--1john doc2488Aug1510:51intro-rw-rw-rw-1john doc8515Aug615:30ch07-rw-rw-r--1john doc14827Aug912:40ch03...-rw-rw-rw-1john doc16867Aug615:56ch05--More--(74%)

屏幕将填补文本,其中包括按文件大小顺序排序的行了一屏。在屏幕底部是更迅速,在那里你可以通过排序的文本键入一个命令来移动。

当你完成这个屏幕上,可以使用任何的讨论更多程序中列出的命令。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值