私はこのスクリプトを使って4パターンを求めてからgrep
コマンドで使用します。つまり、ある行がどのパターンにも一致するかどうかを確認したいのです。grepコマンドに空の文字列を渡す
echo -n "Enter pattern1"
read pat1
echo -n "Enter pattern2"
read pat2
echo -n "Enter pattern3"
read pat3
echo -n "Enter pattern4"
read pat4
cat somefile.txt | grep $pat1 | grep $pat2 | grep $pat3 | grep $pat4
私が遭遇している問題は、ユーザがパターン(許可したいパターン)の1つを供給しないと、grepコマンドが機能しないということです。
grepに空白が返ってきた場合、パターンの1つを無視する方法はありますか?
@fedorqu - 私は重複した質問をするために謝罪。これまでに痛みを伴わないことが分かっていれば、私はこれを初めて知りました。 – berserker
@berserker ANDまたはORでフィルタリングしますか? grepを別のgrepにパイプすると、最初の結果がフィルタリングされます。 'pat = $ {pat: - " "}'と指定すると、空のコンテンツは '' ''に置き換えられ、 '' grep "$ pat" 'は動作します。 。 – fedorqui
@fedorqu - ORでフィルタリングしたい。基本的には、私はsyslogの検索を行い、srcとdst ipとsrcとdst portの入力を取っています。私は、4つの入力すべて、またはそれらのいずれかの組み合わせで検索を実行したい。 – berserker