如何使用 grep、sed 和 awk 来解析标签?

如何使用 grep、sed 和 awk 来解析标签?

我想编写一个脚本,在文本文件中查找打开/关闭标记对,并在该对之间的每行前面添加一个固定字符串。我想我使用 grep 来查找标记行号,并使用 awk 或 sed 来放置标记,但是,我不确定具体该怎么做。

有人可以帮忙吗?

答案1

在 awk 中:

START                  {noprefix="true"}
/<close tag regex>/    {noprefix="true"}
noprefix=="false"      {print "prefix", $0}
noprefix=="true"       {print $0}
/<open tag regex>/     {noprefix="false"}

答案2

它应该由传统的语法感知语言(yacc 等)来完成。使用 grep 等工具可能适合特定情况,但 regexp 功能不足以捕捉 HTML 的微妙之处

答案3

您应该考虑使用 yacc。如果不付出大量努力,使用 sed、awk 或 grep 是不可能做到这一点的。至于学习 yacc,它不会比学习 sed/awk/grep 花费更多时间。而且这样做真的很容易。

相关内容