如何仅删除单个空白行-保留多个空白行

特色域名:

我有一些数据,我想保留多个空白行并仅删除单个空白行。我的数据如下所示:

1

2

3

4


5


6

7

8



9

10

我希望输出为:

1
2
3  
4


5


6
7
8



9
10

我尝试使用以下命令,但似乎无法正常工作:

awk ' /^$/ { print; } /./ { printf("%s ", $0); }'

sed 'N;/^\n$/d;P;D'

另外,我尝试使用,cat -s但不一定删除空白行。此外,我玩过sed '/^$/'但不能仅指定单行。任何帮助是极大的赞赏。

阿努巴瓦:

使用gnu-awk非常简单:

awk -v RS='\n+' '{printf "%s", $0 (length(RT) != 2 ? RT : "\n")}' file

1
2
3
4


5


6
7
8



9
10
  • 使用-v RS='\n+'我们构成1个或多个换行符作为记录分隔符
  • 使用length(RT)我们检查每个记录后有多少个换行符
  • 我们打印RT(原始捕获值)如果length != 2

替代awk命令

awk -v RS='\n{3,}' '{gsub(/\n{2}/, "\n", $0); printf "%s", $0 RT}' file

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章