編集する

編集する

grepでhanzoMollusc(2)をフィルタリングするのに問題があります。

https://node.hanzo.com/production/application/ (1) 

https://node.hanzoMollusc.com/Messaging/Receiver (2)

私のgrepコマンドは(2)で、うまく動作します。

/usr/xpg4/bin/grep -E 'node.hanzoMollusc.*Exception' diag* | grep -c 2013-03-28

問題は、(1)を検索するにはgrepコマンドを少し変更し、マニュアルに記載されている場所で-Fを使用する必要があることです。

"Matches using fixed strings. Treats  each pattern  specified as a string instead of a regular expression"

これまで私が思いついた方法は次のとおりです。動作しません。

/usr/xpg4/bin/grep -F 'https://node.hanzo.com/application/*Exception' diag* | grep -c 2013-03-28

私の問題は、node.hanzoとnode.hanzoMolluscのドメイン部分にあるため、(1)で-Eを使用しません。誰でもこの問題を解決するのに役立ちますか?

編集する

Gilesの例を少し調整することで、私が欲しいものを手に入れることができました。実際、彼の言葉は正しいです。私の質問を読んでみましたが、明確ではありません。私の問題はこれです。

このコンテンツのフィルタ処理に問題があります。

https://node.hanzoMollusc.com/Messaging/Receiver

このコマンドを使用するたびに:

/usr/xpg4/bin/grep -E 'node.hanzoMollusc.*Exception' diag* | grep 2013-03-28

結果に node.hanzo と node.hanzoMollusc も表示されるからです。

Gilesの例を適用して正しい結果を得ることができました。

/usr/xpg4/bin/grep -E '(https://node.hanzo.com/production/application)[/ ].*Exception' diag*

ザイルズには本当にありがとうございました。

答え1

何をマッチさせたいのか明確ではありません。あなたの例は矛盾しています。

grep -F正しい文字列と一致します。*パラメータにaを入れると、ファイル内の1文字だけが一致します*

複数の文字列の一致を許可するには、-Eand|演算子を使用してください。たとえば、次のコマンドは、またはhttps://node.hanzo.com/production/application/somepath Exception Foohttps://node.hanzoMollusc.com/Messaging/Receiver/somepath Exception Foo該当する/somepath部分は可変で省略可能)を含む行と一致します。

grep -E '(https://node.hanzo.com/production/application|node.hanzoMollusc.com/Messaging/Receiver)[/ ].*Exception' diag*

関連情報