我有一个文件a.html,其内容如下所示
<script src="one.sample.js"/>
<script src="two.sample.js"/>
<script src="three.sample.js"/>
我想修改上面的内容,如
<script src="/web/test/src/one.sample.js"/>
<script src="/web/test/src/one.sample.js"/>
<script src="/web/test/src/one.sample.js"/>
如何使用sed?
一次性替换所有出现的通用模式答案 0 :(得分:0)
输入:
$ more a.html
<body>
<script src="one.sample.js" />
<script src="two.sample.js" />
<script src="three.sample.js" />
</body>
<强>转型:强>
$ more htmlScriptConvertor.xslt m
::::::::::::::
htmlScriptConvertor.xslt
::::::::::::::
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="//script[@src]">
<script src="{concat('/web/test/src/',@src)}"></script>
</xsl:template>
</xsl:stylesheet>
如果您需要将转换限制为javascript脚本,这将复制除包含src
属性的脚本节点以外的所有内容(您可以添加属性值必须以.js
结尾的约束)
<强>输出:强>
$ xsltproc --html htmlScriptConvertor.xslt a.html
<?xml version="1.0"?>
<html>
<body>
<script src="/web/test/src/one.sample.js"/>
<script src="/web/test/src/two.sample.js"/>
<script src="/web/test/src/three.sample.js"/>
</body>
</html>
重定向并将其保存到a_new.html