在执行一个shell脚本的时候, 经过检验,内部代码并没有错误,但运行时却提示 ‘\r’: command not found。
这个问题一般发生在Windows创建和编辑.sh脚本上传至Linux服务器运行的情况。问题发生的原因是 因为系统换行符的差异。只要转化脚本为unix格式即可解决问题。
在执行一个shell脚本的时候, 经过检验,内部代码并没有错误,但运行时却提示 ‘\r’: command not found。
这个问题一般发生在Windows创建和编辑.sh脚本上传至Linux服务器运行的情况。问题发生的原因是 因为系统换行符的差异。只要转化脚本为unix格式即可解决问题。
sed替换的基本语法为:
sed 's/<原待替换字符串>/<替换目标字符串>/'
在上一段代码规则中:单引号内部,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线
\
进行转义。但是单引号'
是不能用反斜线\
转义的,这中签情况需要把命令中的单引号改为双引号,即:sed "s/<原待替换字符串>/<替换目标字符串>/"
。
命令中的斜线分隔符可以换成其他的符号,只需要紧跟s定义即可,例如换成问号
?
:sed 's?<原待替换字符串>?<替换目标字符串>?'
,效果是一样的。
基本语法默认只替换每行的第一个匹配的关键字。
更复杂的语法可以在此基础上加以调整: