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文字だけが一致します*
。
複数の文字列の一致を許可するには、-E
and|
演算子を使用してください。たとえば、次のコマンドは、またはhttps://node.hanzo.com/production/application/somepath Exception Foo
(https://node.hanzoMollusc.com/Messaging/Receiver/somepath Exception Foo
該当する/somepath
部分は可変で省略可能)を含む行と一致します。
grep -E '(https://node.hanzo.com/production/application|node.hanzoMollusc.com/Messaging/Receiver)[/ ].*Exception' diag*