本站教程收集整理的这篇文章主要介绍了shell – 在awk脚本中使用搜索模式中的变量,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。
#!/usr/local/bin/gawk -f ` { awkvar2="/id=22/"; awkvar3="/end/"; if ($0 ~ awkvar2) { triggered=1; } if (triggered) { print; if ($0 ~ awkvar3) { triggered=0; print "\n-----------------------------------------------\n" } } }
这个awk脚本不适合我
我试图从一行搜索到另一行,即id = 22直到结束
(我不使用/< String> /,/< String> /的原因是因为我希望在每个搜索块之后有一个大行)
我只想使用变量.
我可以直接使用模式if($0~ / end /){
但我不想那样做,我想在搜索模式中使用变量
(原因是我将通过sHell动态获取变量中的值)@H_772_14@
请告诉我如何在awk的搜索模式中使用变量@H_772_14@
谢谢…@H_772_14@
解决方法
{ awkvar2="id=22"; awkvar3="end"; if ($0 ~ awkvar2) { triggered=1; } if (triggered) { print; if ($0 ~ awkvar3) { triggered=0; print "\n-----------------------------------------------\n" } } }
?编辑@H_772_14@
根据请求修改在“id = 22”之前打印行@H_772_14@
{ awkvar2="id=22"; awkvar3="end"; if ($0 ~ awkvar2) { print prev; triggered=1; } if (triggered) { print; if ($0 ~ awkvar3) { 香港vps triggered=0; print "\n-----------------------------------------------\n" } } {prev=$0;} }
或者,更加尴尬@H_772_14@
BEGIN {awkvar2="id=22";awkvar3="end"} ($0 ~ awkvar2),($0 ~ awkvar3) { if ($0 ~ awkvar2) {print prev;} print; if ($0 ~ awkvar3) { print "\n---------------\n" } } {prev=$0;}
本站总结
以上是本站教程为你收集整理的shell – 在awk脚本中使用搜索模式中的变量全部内容,希望文章能够帮你解决shell – 在awk脚本中使用搜索模式中的变量所遇到的程序开发问题。
如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。