我在bash脚本方面还很新,正在尝试使用sed在文件中替换一些词汇。以下是我在脚本中使用的bash代码:
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)
更改后,就可以解决这个问题。