我想编写一个脚本,在文本文件中查找打开/关闭标记对,并在该对之间的每行前面添加一个固定字符串。我想我使用 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 花费更多时间。而且这样做真的很容易。