sed 在命令行上工作,但不在脚本中工作

sed 在命令行上工作,但不在脚本中工作

为什么当我直接在命令行上键入它时它会起作用:

oldversion=12345
newversion=67890
sed -i "s/${oldversion}/${newversion}/g" "/home/user/MyDir_${newversion}/MyDir_${newversion}.reg"

但是当我将它放入脚本中时,它不会:

#!/bin/bash
oldversion=12345
newversion=67890
sed -i "s/${oldversion}/${newversion}/g" "/home/user/MyDir_${newversion}/MyDir_${newversion}.reg"

它执行为./myscript.sh

它会产生错误

sed:-e 表达式 #1,字符 16:“s”的未知选项

答案1

sed 脚本中的字符 16 不存在。这是"sed 所抱怨的字符,这意味着您的编辑器或输入方法将其替换为 的某些非 ASCII 表示形式"。我的猜测是或者或者¨

使用file您的文件来猜测编码。它应该是“ASCII”。任何其他内容都会暗示该文件包含您不希望出现的内容。

相关内容