使用-p将参数传递给perl

azv*_*azv 0 regex perl

我有一个简短的perl脚本运行正则表达式替换文件: perl -pi -e 's/x/y/' <file> 我想将一个参数传递给脚本,所以它将用命令行参数替换y(例如,类似perl -pi -e 's/x/$argv[1]/' <file>但我使用$ argv [1]不会使用-pi参数时工作.

Bor*_*din 5

我从来没有理解对单行Perl程序的关注,我不明白为什么你不能写一个Perl脚本文件来做这件事.

但是,您可以@ARGV-p循环开始之前从项目中删除项目并将其保存在变量中.像这样

perl -p -i -e 'BEGIN{ $r = pop } s/x/$r/' <file> <replacement>
Run Code Online (Sandbox Code Playgroud)