我正在尝试匹配模式并打印上面几行,使用sed我能够做到但是在脚本中我无法通过它。我得到以下内容,它将参数作为命令如何避免。
这是我简单的for循环脚本
#!/bin/sh
for i in `cat test.txt`
do
echo "***************************************************************************"
echo '\n'
echo $i
sed -n "'1,/$i/p' debug.log | tail -14"
echo '\n'
echo "***************************************************************************"
done
sed -n“'1,/ Ref555330 / p'debug.log | tail -14”
Unrecognized command: '1,/Ref555330/p' debug.log | tail -14
请指导我解决这个问题。
答案 0 :(得分:2)
仅为sed命令提供双引号
sed -n "1,/$i/p" debug.log | tail -14
答案 1 :(得分:0)
awk '
NR==FNR { res[$0]; next }
{
line[FNR] = $0
for (re in res)
if ($0 ~ re)
hit[FNR]
next
}
END {
for (i=1; i<=FNR; i++) {
if (i in hit) {
print "***************************************************************************"
for (j=i-14; j<=i; j++)
print line[j]
print "***************************************************************************"
}
}
}
' test.txt debug.log