【问题标题】:How to remove certain part of files with some conditions, sed or awk?如何在某些条件下删除文件的某些部分,sed 或 awk?
【发布时间】:2014-10-29 03:18:04
【问题描述】:

您好,我是 AWK 或 SED 的新手。

但这正是我需要的。

我有几十个文件,其中包含

<li>
   <a class="btn btn-success btn-xs btn-circle" style="width: 10px;height: 12px;"></a> Online

我应该使用 awk 或 sed 以某种方式共同定位所有包含此片段的文件并删除文件中的这部分吗?

谁能给个灯,提前谢谢。

【问题讨论】:

  • 我会为此使用 DOM + XPath。不要使用正则表达式处理 XML。
  • 如果您希望处理 HTML 片段,则不推荐使用 awk 和 sed 工具。最好使用 HTML 解析器(perl 和 python 有这些),或者如果你的文件是有效的 XML,比如 xmlstarlet。如果您展示一个更完整的输入和所需输出示例,将会很有用。
  • sed 用于单行替换。您的 sn-p 是 2 行,因此 sed 不是该工作的正确工具。 awk 可以处理得很好。

标签: awk sed


【解决方案1】:

将 GNU awk 用于多字符 RS:

$ cat file
now is the
winter
<li>
   <a class="btn btn-success btn-xs btn-circle" style="width: 10px;height: 12px;"></a> Online
of our
discontent

.

$ cat rmv 
<li>
   <a class="btn btn-success btn-xs btn-circle" style="width: 10px;height: 12px;"></a> Online

.

$ awk -v RS='^$' -v ORS= 'NR==FNR{str=$0; next} s=index($0,str){$0=substr($0,1,s-1) substr($0,s+length(str))} 1' rmv file
now is the
winter
of our
discontent

【讨论】:

    猜你喜欢
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多