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'
如果有哪位大神知道的、还请指导一二啊、在下感激不尽、先在此谢过了