You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Perl删除替换产生的空行并保留原始空行?

解决Perl替换后删除生成空行但保留原空行的问题

直接用perl -ne替代-p来手动控制打印逻辑,一次处理就能搞定,不用折腾特殊字符串:

perl -ne '$orig = $_; s/foo//g; print if $orig =~ /^\s*$/ || $_ !~ /^\s*$/'

逻辑说明:

  • -ne 参数让Perl逐行读取输入,不会自动打印每行,方便我们自己决定要不要输出
  • $orig = $_ 先把当前行的原始内容存起来,避免替换后丢失原信息
  • s/foo//g 执行你需要的替换操作
  • 打印条件分两种情况:
    • 原始行本身就是空行(包括只含空白字符的行):直接打印,保留原空行
    • 替换后的行不是空行:正常打印处理后的内容

这样就精准过滤掉了「原行有内容但替换后变成空行」的情况,完全符合需求,而且一次处理完成,没有特殊字符串冲突的问题。

内容的提问来源于stack exchange,提问作者user21749640

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 04:14:52