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
打开两行窗口
如果第一行以---
开头且第二行非空,则打印/删除第一行并插入换行符
打印/删除第一行并重复。
注意:问题的关键是要认识到,以---
开头的行后面的非空行可能是以---
开头的行。