regex - 如何使用 bash 脚本搜索和替换 html 代码?
问题描述
我需要创建一个脚本来处理几个 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}
我知道一些使用正则表达式的 bash 基本技巧,例如搜索和替换,但我没有足够的知识单独做这件事。
非常感谢您的帮助。
先感谢您。
编辑:
链接和脚本总是位于一行,但它们的参数并不总是相同的顺序。
如果regex 似乎对 html来说不是一个好主意,你建议我使用哪个工具?
解决方案
用正则表达式解析 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>
推荐阅读
- python - 使用预先确定的主题分布初始化 Gensim LDA 模型
- python - 将复选框存储到列表 tkinter
- firebase - 如何通过应用引擎监控firestore并同时执行多个游戏?
- command-line-interface - 如何使用 go lang 模板选项过滤 openshift pod?
- authentication - 为什么 Google Cloud Translate 无法提供持久性 503 服务?
- azure-data-factory-2 - Azure 数据工厂从 URL 保存 CSV
- amazon-web-services - 从另一个 AWS 账户访问 S3 Inventory
- python - 使用 importlib 加载模块时如何允许相对导入
- r - 导入未按逻辑方式排序的数据
- javascript - 在“显示条目”中选择“全部”时的数据表,没有找到匹配的记录