linux - 如何使用特殊字符(如 && 和 '/')执行 SED 命令以进行搜索和替换?
问题描述
我有类似的搜索字符串&& !this.peekStartsWith('//')
,想用空格替换。我努力了
sed -i 's/&& !this.peekStartsWith('\/\/')/ /g' dist/vendor.bundle.js
但是,得到一个错误,比如
bash:!this.peekStartsWith:找不到事件
任何人都可以帮助解决这个问题吗?
解决方案
我可以重现错误。您需要history
先按如下方式设置您的关闭,因为您!
在您的文本中放置在sed
命令中,导致此错误。
set +o history
现在,当您sed
按如下方式运行命令时,它运行良好。
echo "test && !this.peekStartsWith('//') bla" | sed "s|&& !this\.peekStartsWith('//')||g"
test bla
要重新开始history
,您可以使用:
set -o history
推荐阅读
- javascript - 当我将 Google App 脚本嵌入 iFrame 时,为什么有些页面可以工作而有些页面不能工作
- docker - 在运行的 docker 容器中安装包
- javascript - Cheerio 查找功能包括祖先和后代
- c# - 如何重构这些相同的逻辑结构?
- git - 禁用 Git 全局用户名和电子邮件
- python - 调用 .fit 后未安装 Sklearn 管道?
- laravel - 消息:“未定义索引:SKU”
- php - MySQL - 将 unix 时间戳转换为日期(Ymd)并调整每个分组的时区
- android - 为什么应用链接在 Android 中不起作用?
- python - 烧瓶python中的SQL查询返回一个关键错误