Perl:更强大的 awk 命令替代方案
1. 打印字段
在处理数据时,我们常常需要打印文件中的特定字段。以 birthdays 文件为例,使用 AWK 命令打印文件中选定字段的示例如下:
$ awk '{ print $2, $1 }' birthdays
Eric 03/30/45
...
若要用 Perl 实现相同功能,我们首先要从相关选项表中选择合适的主选项集群。对于需要使用默认空白分隔符进行字段处理的应用程序,应选择 -wnla 选项。其中, n 选项用于包含隐式输入读取循环, a 选项则会自动将每个输入记录拆分为字段,并存储在 @F 数组中。
以下是对应的 Perl 单行命令:
$ perl -wnla -e '($date, $name)=@F; print "$name $date";' birthdays
Eric 03/30/45
...
尽管这个 Perl 解决方案比 AWK 版本需要更多的输入,但它使用了描述性的变量名,相较于 AWK 中晦涩的 $1 和 $2 ,更易于理解。
2. 使用 undef 进行赋值
在将字段值赋给显式列表时,可以使用 undef
超级会员免费看
订阅专栏 解锁全文
277

被折叠的 条评论
为什么被折叠?



