javascript - 如何在执行 sed 时忽略文件中的特殊字符
问题描述
我需要用 json 文件的内容替换一个字符串。所以我的代码就像
value=$(<minified.json)
sed -i -e "s/<!--MyJson-->/$value/" file.html
我需要将 json 文件的内容替换为<!--MyJson-->
file.html 中的字符串。
发生问题是因为 json 中的某些数组元素/
因此而失败并出现错误
sed: -e expression #1, char 438: unknown option to `s'
但我无法更改 json 中的文本。那么我怎样才能让我的 sed 命令忽略复制文本中的反斜杠。或者我怎样才能把它作为一个盲目的替代品。
请帮忙
解决方案
您可以使用不同的分隔符进行替换:
sed -i -e "s%<!--MyJson-->%$value%" file.html
(提供%
在 json 中不使用)。
或者切换到变量是一等公民的 Perl,而不仅仅是在 shell 中扩展宏:
value=$value perl -i~ -pe 's/<!--MyJson-->/$ENV{value}/' -- file.html
-p
逐行读取输入并在处理后打印- ENV 哈希包含环境变量,在同一行设置变量将其导出到以下命令
推荐阅读
- html - 如何用html中的图像替换文本
- entity-framework - EF Core 2+ - 使用通用存储库预加载
- r-plotly - 如何将 geom_point(aes()) + geom_vline(aes()) 转换为 Plotly?
- ios - 如何使用 Swift 5 从 URL 获取 HTML 代码
- ios - Firebase - 如何在创建新用户之前检查电话身份验证中是否存在电话号码
- python - 为什么在 python 中导入模块时出现“ModuleNotFoundError: No module named 'YEETER'”?
- c++ - 计算二维图像的垂直梯度会导致奇怪的输出
- excel - 为什么我在以下代码中不断收到“Else without If”错误?
- nexus - 我应该将哪种存储库格式与 Sonatype Nexus 一起用于非通用构建输出?
- c - CSFML顶点数组和绘图