我在Stack溢出上看到了多个帖子,并提供了解决此问题的各种解决方案。我尝试了各种版本的发布解决方案,但我无法让它工作。
我正在写一个我想要的perl脚本
New max size: xUL: 0 yUL: 0 x: 0 y 0 size: 1
New max size: xUL: 0 yUL: 0 x: 0 y 1 size: 2
New max size: xUL: 1 yUL: 1 x: 1 y 3 size: 3
New max size: xUL: 1 yUL: 2 x: 2 y 3 size: 4
New max size: xUL: 1 yUL: 2 x: 3 y 3 size: 6
我尝试了各种不同的组合(即
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]
然而,每次我运行它,它会创建ria& RIA'。 我不想要第二个文件,ria''。
这不能完成吗?或者我可以使用其他编辑器吗?我不想在我的Mac上安装任何东西(即gsed)。
我将其作为["/usr/bin/sed","-i", '\'\', '-e', "s/${fileName}/${newName}/g", $tmpPath]
运行。
答案 0 :(得分:1)
sed -i '' ...
做的是传递" -i"作为参数,后跟零长度参数(空引号)。单引号不是参数的一部分,它们只是表示存在一个参数(它没有任何内容)。要使用system
在perl中执行相同的操作,请使用:
["/usr/bin/sed", "-i", "", "s/${fileName}/${newName}/g", $tmpPath]