perl one-liners 技巧

本文持续更新。

perl 支持和 awk , sed 类似的单行命令。perl 的命令行数:
-n 循环每一行
-e 指定单行命令
-p 循环每一行,并且输出符合条件的行(帮你多写个 print)
-l 没一行默认自动添加换行符
-i 直接修改源文件,类似于 sed -i
-F 对于每行设置分割符号,类似于 awk -F

了解了以上信息以后就能写一些简单的单行程序了。

获取 /bin/ 目录下的所有文件名字

1
find /bin/ | perl -ne 'if (/\/bin\/(.*)/) {print "$1\n"}'

等价 awk 实现如下:

1
find /bin/  | awk -F '/' '{print $3}'

2020年07月08日更新

打印文本的指定行

1
2
# 打印文本的第十行
perl -ne 'print if($. == 10)' file.txt