同时在Mac(BSD)和Linux上工作的sed就地标志

是否有一个调用sedtodo的就地编辑功能,而不需要在Linux和Mac上运行的备份?虽然OSX附带的BSDsed似乎需要sed-i'…,但GNUsedLinux发行版通常将引号解释为空输入文件名(而不是备份扩展名),而需要sed-i…

是否有任何命令行语法可用于这两种风格,以便我可以在两个系统上使用相同的脚本

如果您真的想以“简单”的方式使用sed-i,那么以下内容对GNU和BSD/Macsed都有效:

sed-i.bak的/foo/bar/”文件名

请注意缺少空格和圆点

证明:

#GNU-sed
%sed——版本| head-1
GNU sed版本4.2.1
%回音“foo”>文件
%sed-i.bak's/foo/bar/'/文件
%ls
file.bak
%目录/文件
酒吧
#BSD sed
%sed——第2版&gt&1 |头-1
sed:非法选项---
%回音“foo”>文件
%sed-i.bak's/foo/bar/'/文件
%ls
file.bak
%目录/文件
酒吧

显然,您可以删除.bak文件

发表评论