我有以下代码(感谢这个社区的成员)表现得非常奇怪。当我对其动态部分进行硬编码时...当我使用参数来运行代码时,它什么也做不了。这里是代码(有和没有变量)以及输出(截图)
echo "Attempt A:"
echo "--------------------"
echo "awk -v n=4 '{a[p]=$0; p=(p+1)%n}
/(Something)/{for(i=p;i<p+n-1;i++) print a[i%n];f=1}
f{print}
/\/Interface/{f=0}' file.log | awk 'BEGIN{ORS=RS=\"</Interface>\n -------------------\"}
/name=\"Andy\"/' > AttemptA.txt"
awk -v n=4 '{a[p]=$0; p=(p+1)%n}
/(Something)/{for(i=p;i<p+n-1;i++) print a[i%n];f=1}
f{print}
/\/Interface/{f=0}' file.log | awk 'BEGIN{ORS=RS="</Interface>\n -------------------"}
/Name="Andy"/' > AttemptA.txt
aaid="Andy"
aalog=file.log
echo "-------------------------------------------------------------------------------------------------"
echo "-------------------------------------------------------------------------------------------------"
echo ""
echo ""
echo "Attempt B:"
echo "awk -v n=4 '{a[p]=$0; p=(p+1)%n}
/(Something)/{for(i=p;i<p+n-1;i++) print a[i%n];f=1}
f{print}
/\/Interface/{f=0}' ${aalog} | awk 'BEGIN{ORS=RS=\"</Interface>\n -------------------\"}
/Name=\"${aaid}\"/' > AttemptB.txt"
awk -v n=4 '{a[p]=$0; p=(p+1)%n}
/(Something)/{for(i=p;i<p+n-1;i++) print a[i%n];f=1}
f{print}
/\/Interface/{f=0}' ${aalog} | awk 'BEGIN{ORS=RS="</Interface>\n -------------------"}
/Name="${aaid}"/' > AttemptB.txt
以下是结果(截图):
创建的文件:http://imgur.com/NytUL02
知道为什么它会识别所有内容,打印相同的命令,但其中一个实际上有效,而另一个却没有?
答案 0 :(得分:3)
awk -v aaid="$aaid" 'BEGIN{ORS=RS="</Interface>\n -------------------"}
$0 ~ "Name=\""aaid"\""' > AttemptB.txt