首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl与awk的/text/,/END/的等价物是什么?

Perl与awk的/text/,/END/的等价物是什么?
EN

Stack Overflow用户
提问于 2010-03-27 03:31:19
回答 1查看 785关注 0票数 6

我希望替换一个讨厌的shell脚本,它使用awk来修剪一些HTML。问题是我在Perl中找不到执行上述功能的任何东西。

代码语言:javascript
复制
awk '/<TABLE\ WIDTH\=\"100\%\" BORDER\=1\ CELLSPACING\=0><TR\ class\=\"tabhead\"><TH>State<\/TH>/,/END/'

我如何在Perl中做到这一点?

预期的输出将是

代码语言:javascript
复制
<TABLE WIDTH="100%" BORDER=1 CELLSPACING=0><TR class="tabhead"><TH>State</TH>

Perl触发器操作符给了我更多。(星号之间的一切都是垃圾)

代码语言:javascript
复制
*<h2>Browse Monitors (1 out of 497)</h2><br><font size="-1" style="font-weight:normal"> Use the <A HREF=/SiteScope/cgi/go.exe/SiteScope?page=monitorSummary&account=login15 >Monitor Description Report</a> to view current monitor configuration settings.</font>*<TABLE WIDTH="100%" BORDER=1 CELLSPACING=0><TR class="tabhead"><TH>State</TH>
EN

回答 1

Stack Overflow用户

发布于 2010-03-27 03:46:12

作为一行代码(自第一篇文章以来略有变化):

代码语言:javascript
复制
perl -n -e '$started = 1 if /<TABLE\ WIDTH\=\"100\%\" BORDER\=1\ CELLSPACING\=0><TR\ class\=\"tabhead\"><TH>State<\/TH>/; next unless $started; print; last if /END/;'

从perlrun手册页:

-n causes Perl to assume the following loop around your program, ,这使得它在文件名参数上迭代,有点像sed -n或awk:

行: while (<>) { ... #你的程序转到这里}

然后主体的核心是等待开始,然后打印每一行直到结束。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2526161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档