我正在尝试在特定时间戳内从我的应用程序中提取日志。所以我写了下面的脚本
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 上,它在将文件作为参数传递方面存在限制
在这方面有什么帮助建议吗?
最佳答案
你的 sed 命令应该是
sed -n "/$a/,/$b/p" -- "${@:3}"
请注意,如果您不使用 Bash,您可以在运行 sed 之前先转换这些参数:
shift 2
sed -n "/$a/,/$b/p" -- "$@"
关于regex - 在 SED 命令中传递多个文件 : Log Extract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24532636/