如何正确设置sed命令



当我尝试以下命令时,我想重写sql。

Day='2020/12/1'
Dir=/home/test/data

sql=`cat $Dir"/"$test".sql" | sed -e "s/Day/$Day/g"`

我犯了以下错误。

sed: -e expression #1, char 24: unknown option to `s'

为什么s被识别为选项?为什么这个命令不能正常工作?

如果有人有什么意见,请告诉我

感谢

问题是斜杠:你的变量包含了它们,最后的命令会像sed "s/string/path/to/something/g",包含了太多的斜杠。

由于sed可以接受任何字符作为分隔符(无需声明新的分隔符),因此您可以尝试使用另一个没有出现在替换字符串中的字符,如下所示:

sql=`cat $Dir"/"$test".sql" | sed -e "s|Day|$Day|g"`

另外,您需要使用sed -i来就地更新文件,因为看起来这就是您要做的。

相关内容

  • 没有找到相关文章

最新更新