我正在尝试从特定时间戳内的应用程序中提取日志。所以我写了以下脚本
a= echo $1 | sed 's/\//\\\//g';
b= echo $2 | sed 's/\//\\\//g';
sed -n "/$a/,/$b/p" $3;
这里$ 1和$ 2是我想要日志的时间戳,$ 3是我想要的文件。
如果我传递单个文件,此脚本将非常完美。但如果我多个文件或目录作为参数,它不会给出任何输出。
这就是我执行脚本的方式
extract.sh '6/30/14 9:03' '6/30/14 9:05' abc_*/SysOut.log
SED可以使用多个文件,或者问题在于UNIX,在将文件作为参数传递
方面存在限制在这方面有任何帮助吗?
答案 0 :(得分:3)
你的sed命令应该是
sed -n "/$a/,/$b/p" -- "${@:3}"
注意如果你没有使用Bash,你可以在运行sed之前先调整这些参数:
shift 2
sed -n "/$a/,/$b/p" -- "$@"