塞拉利昂10.12.3 sed的:看不懂......错误

问题描述:

我不明白为什么我的旧脚本以前好了,今天没上班。塞拉利昂10.12.3 sed的:看不懂......错误

myscript.sh:

... 
export LC_CTYPE=C 
export LANG=C 

# Delete all lignes begining by ' "Doc ' 
sed -i "" '/^"Docteur /d' $1 
... 

当我运行./myscript.sh myfiletotreat.csv我得到这个消息:

sed: can't read /^"Docteur /d: No such file or directory 
+1

它看起来像MacOS的默认BSD实现sed'的'是由_GNU_'sed',其'-i'语法不同,这会导致你看到的错误阴影。用'/ usr/bin/sed'试试看。 – mklement0

+0

顺便说一句:为了确保您的脚本还与包含有特殊意义的壳字符,如空格的文件名,则应更换'$ 1'和'“$ 1”'。 – mklement0

+0

太好了!这再次工作。非常感谢你帮助我。 –

的OP的本地BSDsed执行(MACOS附带)正被遮挡的后来GNUsed安装,其-i语法不同,导致错误引用。

调用原生BSD sed/usr/bin/sed是一个快速的解决方法,但更好的方法是根本不影响本地实用程序。