我需要创建一个脚本来处理几个html文件以转换这些类型的行:
<link rel="stylesheet" href="assets/css/main.css">
..放入其中:
{stylesheets file='assets/css/main.css'}
<link rel="stylesheet" href="{$asset_url}">
{/stylesheets}
我还需要以相同的方式在html文件中转换javascript代码。这个:
<script type="text/javascript" src="vendor/revolution/revolution.extension.migration.min.js"></script>
..放入其中:
{javascripts file='vendor/revolution/revolution.extension.migration.min.js'}
<script src="{$asset_url}"></script>
{/javascripts}
我知道使用regex进行bash的一些基本技巧,例如搜索和替换,但我没有足够的知识来独自完成这项工作。
非常感谢您的帮助。
谢谢。
编辑:
链接和脚本始终位于同一行,但它们的参数并不总是相同。
如果使用regex seems to be a bad idea for html,您建议我使用哪种工具?
答案 0 :(得分:0)
用regex解析HTML不是一个好主意,但是这个丑陋且很可能失败的sed命令可能有机会
sed \
-e 's/\(<link rel="stylesheet" href="\)\([^"]\+\)\(">\)/\n{stylesheets file='\''\2'\''}\n\t\1${asset_url}\3\n{\/stylesheets}\n/g' \
-e 's/\(<script \)type="text\/javascript" \(src="\)\([^"]\+\)\("><\/script>\)/\n{javascripts file='\''\3'\''}\n\t\1\2{$asset_url}\4\n{\/javascripts}\n/g' \
<input_file>