shell错误 sed: can't read : No such file or directory

送分小仙女□ 提交于 2020-01-11 00:32:31

出现这样的问题主要是在于 空字符 造成的,情况分为3种

第一种是windows上的文件,在Linux上运行,这种可以通过查看文件编码确认,unix + utf-8 可以解决。

第二种是网页复制的shell代码,里边有些未知编码的空格字符,这种情况多次全局替换,可以解决,实在不行照着代码敲一遍总可以解决。

第三种是 sed命令使用了换行符 \ 且在换行符后加入了空格,例如:

value1=test1
value2=test2

sed -i -r \
	-e "s/(key1[ =]*).*/\1${value1}/g" \
	-e "s/(key2[ =]*).*/\1${value2}/g" \    
	/root/test.conf

这是一个修改配置文件的脚本,但是在倒数第二行的\后边有空格,续行符后的空格在这里被解释为了文件路径,所以找不到文件。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!