首页/系统/Linux 运维命令速查/perl 一行流处理文本
文本处理77 条

perl 一行流处理文本

比 sed 更强的单行处理:PCRE 级正则(\d、\K、非贪婪)随手可用,-i 原地改、-ne 逐行判断,脚本万能替补。

Linux 运维命令速查系统更新于 2026-10-12
用途单行文本处理(替换/提取/过滤)
语法perl -[pne] '代码' 文件
常用-pe 逐行处理输出 -ne 逐行过滤 -i 原地 -0777 整体读入

常用示例

常用示例
perl -pe 's/foo/bar/g' file.txt
perl -i.bak -pe 's/\d{4}-\d{2}-\d{2}/REDACTED/g' app.log   # 原地+备份
perl -ne 'print if /\bERROR\b/' app.log
perl -ne 'print "$1\n" if /timeout=(\d+)ms/' app.log      # 提取捕获组
perl -0777 -pe 's/begin.*?end/SECTION/gs' big.txt           # 跨行替换
PCRE 风格正则(\d、\s、|、+?)在 perl 里即写即用,不必像 grep BRE 那样纠结转义。

易错点

  • -i 必须与 -p/-n 搭配才是「原地替换」:单独 perl -i 文件 会等键盘输入
  • -0777 一次性读入整个文件:大文件吃内存,先估大小再上

数据来源与参考

  • man 1 perlrun(Perl 官方手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌