添加 shell 个变量后 AWK 脚本停止工作
AWK script stops working after shell variables are added
我的以下代码(感谢该社区的一名成员)表现得很奇怪。当我对动态部分进行硬编码时,它起作用了……当我使用参数 运行 代码时,它什么也没做。这是代码(有和没有变量)以及输出(屏幕截图)
echo "Attempt A:"
echo "--------------------"
echo "awk -v n=4 '{a[p]=[=11=]; 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]=[=11=]; 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]=[=11=]; 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]=[=11=]; 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/FEJW5uR
创建的文件:http://imgur.com/NytUL02
知道为什么它能识别所有内容,打印相同的命令,但一个有效而另一个无效吗?
awk -v aaid="$aaid" 'BEGIN{ORS=RS="</Interface>\n -------------------"}
[=10=] ~ "Name=\""aaid"\""' > AttemptB.txt
我的以下代码(感谢该社区的一名成员)表现得很奇怪。当我对动态部分进行硬编码时,它起作用了……当我使用参数 运行 代码时,它什么也没做。这是代码(有和没有变量)以及输出(屏幕截图)
echo "Attempt A:"
echo "--------------------"
echo "awk -v n=4 '{a[p]=[=11=]; 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]=[=11=]; 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]=[=11=]; 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]=[=11=]; 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/FEJW5uR
创建的文件:http://imgur.com/NytUL02
知道为什么它能识别所有内容,打印相同的命令,但一个有效而另一个无效吗?
awk -v aaid="$aaid" 'BEGIN{ORS=RS="</Interface>\n -------------------"}
[=10=] ~ "Name=\""aaid"\""' > AttemptB.txt