我希望替换一个令人讨厌的shell脚本,它使用awk来修剪一些HTML.问题是我在Perl中找不到执行上述功能的任何内容
awk '/<TABLE\ WIDTH\=\"100\%\" BORDER\=1\ CELLSPACING\=0><TR\ class\=\"tabhead\"><TH>State<\/TH>/,/END/'
Run Code Online (Sandbox Code Playgroud)
我怎么能在Perl中做到这一点?
预期的产出是
<TABLE WIDTH="100%" BORDER=1 CELLSPACING=0><TR class="tabhead"><TH>State</TH>
Run Code Online (Sandbox Code Playgroud)
Perl触发器操作员给了我更多.(星号之间的一切都是垃圾)
*<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>
Run Code Online (Sandbox Code Playgroud)
我认为这会奏效:
perl -ne 'print if /text/ .. /END/'
Run Code Online (Sandbox Code Playgroud)
expr1 .. expr2将是假的,直到遇到一行为expr1真.然后它会是真的,直到遇到一行为expr2真.
更新:如果您需要修剪第一个匹配行前面的不匹配文本,这将有效
perl -ne 'print if s/.*TEXT/TEXT/ .. s/END.*/END/`
Run Code Online (Sandbox Code Playgroud)
要么
perl -ne 'print if s/.*(TEXT)/$1/ .. s/(END).*/$1/'
Run Code Online (Sandbox Code Playgroud)
如果TEXT是一个只需要输入一次的长字符串.更改将在模式匹配时编辑该行.
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |