我编写了一个 sed 脚本,它用一个空行替换了多个空行,但它没有按预期工作。我会感谢大家,谁能解释我为什么。请不要让我参考工作示例,我对 Google 很熟悉。我只是想了解 sed 是如何工作的。
代码是
sed ':a;/^\n*$/{N;ba};s/^\n\n*/\n/' input_file
所以逻辑很简单:当 sed 读取该行并且它是空白或有几个换行符(这是/^*\n$
条件)时,我告诉 sed 将下一行附加到模式空间。一旦找到非空行,替换s/^\n\n*/\n/
就完成了。
除了文件末尾有空行的情况外,一切正常。这些空白没有被一个空白代替,我不明白为什么。
有任何想法吗?