我正在尝试从特定时间戳内的应用程序中提取日志。所以我写了以下脚本
a= echo $1 | sed 's/\//\\\//g';
b= echo $2 | sed 's/\//\\\//g';
sed -n "/$a/,/$b/p" SystemOut.log;
这里a和b是我作为参数传递的时间戳。当我运行脚本时,SED不会扩展变量。
但是,如果我在终端中运行以下脚本,它可以正常工作
sed -n '/6\/30\/14 9:03/,/6\/30\/14 9:04/p' SystemOut.log
任何人都可以提供帮助吗?
我正在运行脚本,如下所示 -
sh extract.sh '6/30/14 9:01' '6/30/14 9:03'
答案 0 :(得分:2)
尝试这种方式:
a=$(echo $1 | sed 's/\//\\\//g');
b=$(echo $2 | sed 's/\//\\\//g');
sed -n "/$a/,/$b/p" SystemOut.log;
为了将命令的输出存储在变量中,可以使用$()
答案 1 :(得分:1)
使用双引号""
扩展变量。像
sed -n "/\"$a\"/,/\"$b\"/p" SystemOut.log;