成長するログファイルに "tail"を行うためのシェルスクリプトを書いています。このスクリプトは、検索するパラメータを受け入れ、その出力を段階的にgrepsします。例えば動的にgrep文字列を構築する
次のようにスクリプトが呼び出された場合、:
logs.sh string1 string2
それはに変換する必要があります
tail -f logs.txt | grep string1 | grep string2
私はこのようなgrepの文字列のリストを構築しています:
full_grep_string=""
for grep_string in $*
do
full_grep_string="$full_grep_string | grep $grep_string"
done
文字列は正しく構築されていますが、最終的にtailコマンドにタグ付けしようとすると...
tail -f $LOG_FILE_PATH $full_grep_string
... grepは適用されず、フィルタされていないログが取得されます。
ここに何か不足していますか?またはこれを行う簡単な方法はありますか?
ほんの少しの明確化:アイデアは、あなたのスクリプトが出力の両方が含まれているログファイルの行をべきであるということですstring1とstring2のいずれかを含む行を探したいと思っていましたか? –
また、どのシェルを使用していますか? bash? –
私はdebian lennyで私は2つのgrepを組み合わせてもtail -fではなく、ちょうどテールで動作するという問題に直面しています – tuergeist