shell 文本替换 ---出现--- sed:-e 表达式 #1,字符 8:“s”的未知选项

需要替换的行为:

monitor.url=http://192.168.25.100:8443/rest

查询资料得知,报错是因为替换的字符串包含有分隔符/

所以这行改一下分隔符就可以解决问题了  (这里的分隔符随自己定义 例如:sed -i "s#$url#$1#g" datasource.properties  这三个分隔符要统一就可以了

改成感叹号!或者|  等其他来分割

sed -i "s!$url!$1!g" datasource.properties

关于sed 命令中的转义符为()

还有一点需要注意的是:

     在某些问文件中不知道修改了什么东西导致文件格式出现了问题、导致使用sed 命令无法对文件进行有效的操作;

      那么出现这样的情况的话就需要进行源文件的还原了;暂时还不明白是何原因

      还有就是刚发现有时候sed 不能使用了,一直都不知道是啥原因、所以就换了一种方式:

      find命令查找和替换

      命令格式:find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'

      #查找替换当前目录下包含字符串并进行替换

      find -name '*.txt' | xargs perl -pi -e 's|智慧乡村|北部山区|g'

      如果有哪位大神知道的、还请指导一二啊、在下感激不尽、先在此谢过了

原文地址:https://www.cnblogs.com/tzhyy/p/10207464.html