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オプション forは、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

2 番目の例はほとんど同じです。パターンは異なりますが、それ以外のコマンドは同じです。

于 2013-02-15T06:49:24.353 に答える
0

sedは、ファイルのパターンによる範囲をsed実行してから、Linux パイプの出力をgrep. grepを持つ文字列を印刷していyahoo.comます。

于 2013-02-15T06:31:34.107 に答える