perl具有方便的命令行语法来替换文件
perl -pe 's/key/replace/g' file
我想知道用于替换字符串的单行语法是什么?
perl -pe 's/key/replace/g' string
不起作用。它会抱怨
无法打开ppp:没有这样的文件或目录。
答案 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