如何插入一个空行而不是空行

  • 本文关键字:一个 何插入 插入 sed
  • 更新时间 :
  • 英文 :


sed如何在这个keep-fail代码中插入一个空行:

sed -Ee '/^---/{n;/^s*$/b;i n' -e 'b}; b; q' -- inserting_one.txt
---
n
WORKING_DIR

---行后面插入一个空白行,然后保持其余行

---
WORKING_DIR

使用\n:sed -Ee '/^---/{n;/^s*$/b;i \n' -e 'b}; b; q' -- inserting_one.txt插入两个空白行

---

WORKING_DIR

请指路,谢谢

您可以使用一个模式来匹配3个或更多的连字符,并检查下一行是否至少有一个非空格。

sed '/^---+$/{N;s/n[[:space:]]*[^[:space:]]/n&/}' inserting_one.txt

  • /^---+$/整行匹配3个或更多连字符
  • {启动命令用;
    • N;将下一行拉入模式空间
    • s/开始替换
    • n[[:space:]]*[^[:space:]]匹配换行符,可选空格和非空白字符以确保下一行不为空
    • /n&/用换行符替换,其余部分匹配
  • }结束

输出
---
WORKING_DIR

这可能适合您(GNU sed):

sed 'N;/^---.*n.*S/{P;s/.*n/n/};P;D' file

打开两行窗口

如果第一行以---开头且第二行非空,则打印/删除第一行并插入换行符

打印/删除第一行并重复。

注意:问题的关键是要认识到,以---开头的行后面的非空行可能是以---开头的行。

最新更新