加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 匹配后首次出现awk打印

发布时间:2020-12-16 01:53:00 所属栏目:安全 来源:网络整理
导读:我正在尝试在两个模式之间打印文本文件的一部分,然后仅返回第一个模式.应该很简单,但我似乎无法找到解决方案. cat test.html if (var == "Option_1"){ document.write("tdhead1/td") document.write("tdtext1/td")}if (var == "Option_2"){ document.write("
我正在尝试在两个模式之间打印文本文件的一部分,然后仅返回第一个模式.应该很简单,但我似乎无法找到解决方案.

cat test.html

if (var == "Option_1"){
  document.write("<td>head1</td>")
  document.write("<td>text1</td>")
}
if (var == "Option_2"){
  document.write("<td>head2</td>")
  document.write("<td>text2</td>")
}
if (var == "Option_1"){
  document.write("<td>head3</td>")
  document.write("<td>text3</td>")
}

这打印所有匹配:

awk '/Option_1/,/}/' test.txt

我需要它只返回第一个,即:

if (var == "Option_1"){
  document.write("<td>head1</td>")
  document.write("<td>text1</td>")
}

谢谢!

解决方法

永远不要使用范围表达式,因为它们使得琐碎的工作变得非常简单,但是需要完全重写或重复条件才能完成更有趣的任务.始终使用旗帜:

$awk '/Option_1/{f=1} f{print; if (/}/) exit}' file
if (var == "Option_1"){
  document.write("<td>head1</td>")
  document.write("<td>text1</td>")
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读