首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sed错误:替换命令中的标志错误:'U‘

Sed错误:替换命令中的标志错误:'U‘
EN

Stack Overflow用户
提问于 2015-09-16 21:38:58
回答 1查看 11K关注 0票数 12

我是bash脚本的新手,正在尝试使用sed替换文件中的一些单词。下面是我在脚本中使用的bash:

代码语言:javascript
复制
sed -i '' "s/<pre>.*<\/pre>/<pre>($NEWNAME) $MD5<\/pre>/"~/Desktop/replace.html

我收到的错误消息是:bad flag in substitute command: 'U'。我使用双引号,因为我需要把变量放进去。

我的环境是Mac。

======================================

1.结果是我忘了在替换字符串和文件名之间留一个空格。这导致结果总是显示:bad flag in substitute command: '~'。它现在起作用了。

2.原因是我使用MD5=$(md5 path)来创建正则表达式的MD5值,该值获取MD5 (path) *****的返回值,并且路径包含破坏正则表达式的/。修改MD5=$(md5 -q path)后,一切都会好的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-16 21:41:03

sed中,您的正则表达式变量很可能包含一个正斜杠,它被用作正则表达式分隔符。使用备用分隔符尝试此sed,例如~

代码语言:javascript
复制
sed -i '' "s~<pre>.*</pre>~<pre>($NEWNAME) $MD5</pre>~" ~/Desktop/replace.html
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32610261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档