perl调用外部命令(g)awk的方法

678 查看

但是,linux系统的常用小工具awk天生对列操作友好,有时直接在perl中调用awk比写相应的perl脚本要方便有效的多。比如用system插入awk语句:

复制代码 代码如下:

system(gawk '{print $1}' $filename);

执行该l语句,你会发现这行会报错,提示你使用了read-only 的变量$1。
那么,如何处理两种生态系统下的冲突呢?
有一个简单的解决办法:

复制代码 代码如下:

my $i="$1";
system(gawk '{print $i}' $filename);

这样便解决了(g)awk的$1和perl的 内置变量$1的冲突的问题了。