大佬教程收集整理的这篇文章主要介绍了打印所有内容使用awk除了匹配范围模式,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如
$cat 1.t
abd hfdh # fafa deafa 123 # end
我想要的结果:
猫1.t
abd hfdh end
编辑:
我举了一个不好的例子. endpattern应该与startpattern不同,因为我还没有测试过.这是我的错.
同时,我想以不同方式操作范围模式和非范围模式.所以sed不是我的选择.
我想你正在寻找与sed’/#/,/#/ d’或sed -n’/#/,/#/!p’相同的方式
在awk中有一些类似的(不同于sed的)地址模型.在手册页中有解释.我说的不一样,你的榜样很好.如果start == end,awk的地址模型将不起作用:
kent$ echo "abd hfdh # fafa deafa 123 # end"|awk '/#/,/#/{next}1' abd hfdh fafa deafa 123 end
因为awk匹配同一行(再次检查手册页)但如果它们不同,请参阅此示例:
kent$ echo "abd hfdh # fafa deafa 123 ## end"|awk '/#/,/##/{next}1' abd hfdh end
它会给你想要的东西.所以如果是这种情况,你可以这样做:
awk '/start/,/end/{next}1'
是的,和sed的相似.
如果开始和结束真的相同,你想用awk做,你需要标志.
kent$ echo "abd hfdh # fafa deafa 123 # end"|awk '/#/&&!f{f=1;next}f&&/#/{f=0;next}!f' abd hfdh end
好吧,例如更好地使用^#$,但这不是重点.我希望这回答了你的问题.
以上是大佬教程为你收集整理的打印所有内容使用awk除了匹配范围模式全部内容,希望文章能够帮你解决打印所有内容使用awk除了匹配范围模式所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。