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

如何用SED命令在仅含大写字母和空格的行后插入空行?

用sed实现目标需求的解决方案

没问题,这事儿用sed就能轻松搞定,我直接上可用的命令,再给你拆解背后的逻辑:

核心命令

sed '/^[A-Z ]*$/G' your_input_file.txt

命令拆解

咱们把这个命令拆成两部分,就能明白它为啥能精准完成需求:

  • 匹配规则 /^[A-Z ]*$/:这是sed用来筛选目标行的正则表达式:

    • ^ 标记行的起始位置,$ 标记行的结束位置,合起来就是要匹配整行内容;
    • [A-Z ] 匹配单个大写字母或者空格;
    • * 表示前面的字符(大写字母/空格)可以出现0次或多次;
      简单说,这个规则就是精准抓出仅由大写字母和空格组成的行(包括全是空格的行)。
  • G 命令:sed里的G命令会把「保持空间」(默认只存了一个换行符)的内容追加到当前匹配行的后面,直观效果就是给匹配到的行插入一个空行。

可选调整:排除全空格的行

如果你不想给全是空格的行也插空行,只针对包含至少一个大写字母的行操作,可以把正则改成这样:

sed '/^[A-Z ]*[A-Z][A-Z ]*$/G' your_input_file.txt

这个正则要求行里至少有一个大写字母,全空格的行就会被排除在外。

示例演示

假设你的输入文件内容是:

HELLO STACK OVERFLOW
this is mixed case
ALL CAPS HERE
   just spaces   
123 numbers included

执行第一个核心命令后,输出会变成:

HELLO STACK OVERFLOW

this is mixed case
ALL CAPS HERE

   just spaces   

123 numbers included

内容的提问来源于stack exchange,提问作者F.Cunha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:31:07