perl命令行替换字符串

时间:2017-11-17 10:39:26

标签: perl

perl具有方便的命令行语法来替换文件

perl -pe 's/key/replace/g' file

我想知道用于替换字符串的单行语法是什么?

perl -pe 's/key/replace/g' string

不起作用。它会抱怨

  

无法打开ppp:没有这样的文件或目录。

2 个答案:

答案 0 :(得分:7)

您可以使用echo(或您的操作系统等效)将您的字符串发送到命令行Perl程序。

$ echo hello | perl -pe 's/hello/goodbye/'
goodbye

答案 1 :(得分:4)

您可能希望删除-p选项,因为这会将代码包含在while(<>)循环中。对于perl <>表示读取命令行中指定的文件或STDIN(如果没有)。所以你的“字符串”(我猜测它是“ppp”的时候)被视为文件名。

相反,如果你想传入非文件名,你可能想要这样的东西:

perl -e 'print join(" ",map{ s/key/replace/g; $_ } @ARGV),"\n"' string