-->
who |perl -ne '@F=split;print "$F[0]\n";'
开关n指的是对于输入逐行执行
开关e指执行后面的代码
split函数默认从$_中获得输及以/\s*/作表达式分隔字串
进一步简化命令
who |perl -ane 'print "$F[0]\n"';'
开关a 实现使用split分隔$_给数组@F
who |perl -lane 'print "$F[0]";'
开关l相当于 $\=$/将输入域分隔符的值赋给输出域分隔符
who |perl -lape '$_=$F[0]'
开关p相关于语句print打印默认输出并进行循环
看下面的代码
#!/usr/bin/perl
$\ = $/; # from -l
while (<>) { # from -p
chop; # from -l
@F = split; # from -a
$_ = $F[0]; # argument to -e
print; # from -p
}
当需要定义输入域分隔符时使用选项 -F
perl -aF: -lne 'print $F[0]' /etc/passwd

发表评论