我试图了解如何在bash脚本中使用此Perl命令:
perl -nle 'print ++$_'
答案 0 :(得分:4)
它从标准输入或文件中读取行,假设每行都是一个数字,并且打印数字加1,
seq 5 | perl -nle 'print ++$_'
2
3
4
5
6
如何将命令行开关转换为完整脚本,
perl -MO=Deparse -nle 'print ++$_'
BEGIN { $/ = "\n"; $\ = "\n"; }
LINE: while (defined($_ = <ARGV>)) {
chomp $_;
print ++$_;
}
n
在代码中添加while(<>){}
循环l
选中每一行,$\ = "\n"
(每次打印后换行)e
答案 1 :(得分:3)
传递给perl的标志在perldoc perlrun
-n
会导致整个Perl“程序”在输入的每一行上运行一次,$_
依次获取每个输入行的值,< / LI>
-l
让“换行”变得“神奇”,-e
在命令行中提供有问题的Perl程序。因此,为每行运行程序print ++$_
,并打印当您尝试向行内容添加1时生成的值。对于看起来像数字的线条,这将只是打印一个更大的数字。对于简单为ASCII字母的行,将发生自动增量魔法(aa
将变为ab
,依此类推)。对于不是数字的行,它们的值将为0
并打印1
。