分数を指定できる小さな bash スクリプトを作成しようとしています。これにより、過去 X 分間のログ ファイルの行が表示されます。行を取得するために、sedを使用しています
sed -n '/time/,/time/p' LOGFILE
CLI ではこれは完全に機能しますが、私のスクリプトでは機能しません。
# Get date
now=$(date "+%Y-%m-%d %T")
# Get date minus X number of minutes -- $1 first argument, minutes
then=$(date -d "-$1 minutes" +"%Y-%m-%d %T")
# Filter logs -- $2 second argument, filename
sed -n '/'$then'/,/'$now'/p' $2
私はさまざまなアプローチを試しましたが、どれもうまくいかないようです:
result=$(sed -n '/"$then"/,/"$now"/p' $2)
sed -n "/'$then'/,/'$now'/p" "$2"
sed -n "/$then/,/$now/p" $2
sed -n "/$then/,/$now/p" "$2
何か提案はありますか?私はDebian 5を使用しています、echo $SHELL
と言う/bin/sh
編集:スクリプトは出力を生成しないため、エラーは表示されません。ログファイルでは、すべてのエントリが次のような日付で始まります2013-05-15 14:21:42,794