0

我不明白这个脚本是如何工作的,以下命令是什么意思?

sed -n '/Domain Summary: Message Delivery/,/Domain Summary: Messages Received/p' test_mx1 | grep "yahoo.com"

下面也是

sed -n '/Domain Summary: Messages Received/,/Senders by message count/p' test_mx1 | grep "yahoo.com"

我无法理解这些命令。

4

2 回答 2

1

该脚本正在处理该文件test_mx1。的-n选项sed意味着“不打印每一行”(它通常会这样做)。

'/Domain Summary: Message Delivery/,/Domain Summary: Messages Received/p'

这将查找包含 , 的行Domain Summary: Message Delivery,并从该行开始直到包含的行Domain Summary: Messages Received打印出每一行。如果找到与第一行匹配的另一行,它将再次开始打印。

然后,命令的输出会sed被过滤,因此只打印grep包含yahoo.com(或yahooXcom任何字符)的行。X

grep可以省略:

fr_line="Domain Summary: Message Delivery"
to_line="Domain Summary: Messages Received"
sed -n "/$fr_line/,/$to_line/{/yahoo.com/p;}" test_mx1

第二个例子几乎相同;模式不同,但除此之外,命令是相同的。

于 2013-02-15T06:49:24.353 回答
0

sed正在按模式为文件做范围,然后 Linux 管道sed的输出到grep. grep正在打印具有yahoo.com.

于 2013-02-15T06:31:34.107 回答