繁体   English   中英

在OS X上使用sed进行就地编辑

[英]In-place edits using sed on OS X

我在堆栈溢出中看到了多个帖子,提供了针对此问题的各种解决方案。 我尝试了各种版本的已发布解决方案,但无法正常工作。

我正在写一个Perl脚本,我想

my $fileName = "apple"; my $newName = "banana"; my $ tmpPath = "/etc/ria"; ["/usr/bin/sed","-i ''", "s/${fileName}/${newName}/g", $tmpPath]

我已经尝试过各种不同的组合(即
["/usr/bin/sed","-i''", "s/${fileName}/${newName}/g", $tmpPath]
["/usr/bin/sed","-i", '\\'\\', "s/${fileName}/${newName}/g", $tmpPath]
["/usr/bin/sed","-i", '\\'\\', '-e', "s/${fileName}/${newName}/g", $tmpPath]

但是每次我运行它时,都会创建ria&ria''。 我不要第二个文件ria''。

这不能实现吗? 还是我可以使用其他一些编辑器? 我不想在Mac上安装任何东西(即gsed)。

我正在将其作为system(@command);运行system(@command);

sed -i '' ...作用是传递“ -i”作为参数,然后是零长度参数(空引号)。 单引号不是参数的一部分,它们只是用来表示存在一个参数(它根本没有任何内容)。 要在perl和system执行相同的操作,请使用:

["/usr/bin/sed", "-i", "",  "s/${fileName}/${newName}/g", $tmpPath]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM