我有类似于&& !this.peekStartsWith('//')的搜索字符串,并希望用空格替换。我试过了
sed -i 's/&& !this.peekStartsWith('\/\/')/ /g' dist/vendor.bundle.js但是,得到一个错误,比如
bash:!this.peekStartsWith:事件未找到
有人能帮忙解决这个问题吗?
发布于 2019-12-02 06:11:59
我只有在转义!时才能让它正常工作
sed "s|&& \!this\.peekStartsWith('//')| |g" file示例文件
cat file
some data&& !this.peekStartsWith('//')more data测试
sed "s|&& \!this\.peekStartsWith('//')||g" file
some datamore data
sed "s|&& \!this\.peekStartsWith('//')| |g" file
some data more data
sed "s|&& \!this\.peekStartsWith('//')|***|g" file
some data***more data发布于 2019-12-02 05:54:31
我可以复制错误。您需要设置history,如下所示,因为您的文本中有!,您在sed命令中放置了它,这将导致此错误。
set +o history现在,当您按照下面的方式运行sed命令时,它运行得很好。
echo "test && !this.peekStartsWith('//') bla" | sed "s|&& !this\.peekStartsWith('//')||g"
test bla要再次启动history,您可以使用:
set -o historyhttps://stackoverflow.com/questions/59133293
复制相似问题