増大するログ ファイルに対して「テール」を実行するシェル スクリプトを作成しています。このスクリプトは、検索するパラメーターを受け入れ、それらの出力を段階的に 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 が適用されず、フィルタリングされていないログが取得されます。
ここで何か不足していますか?または、これを行う簡単な方法はありますか?