【发布时间】:2023-10-24 03:33:01
【问题描述】:
我正在尝试编写一个小 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
【问题讨论】:
-
你能从日志中显示一行吗?