我可以使用grep
或sed
从文件中删除空行。但是,我无法解决我必须删除空行旁边的有效行的情况。以下是一个例子:
来源:
1_1
1_2
1_3
1
2_1
2_2
2_3
2_4
2_5
2
3
4_1
4_2
4
5_1
5_2
5_3
5_4
5
6
7_1
7
8_1
8_2
8
输出:
1_1
1_2
1_3
1
2_1
2_2
2_3
2_4
2_5
2
4_1
4_2
4
5_1
5_2
5_3
5_4
5
7_1
7
8_1
8_2
8
如何删除空行旁边的有效行?
答案 0 :(得分:5)
尝试类似:
sed '/^$/,+1 d' test.txt
每当找到空行时,请将其删除,然后删除下一行。
答案 1 :(得分:2)
以下是awk
解决方案:
awk '!NF {f=1;next} f {f=0;next}1' file
1_1
1_2
1_3
1
2_1
2_2
2_3
2_4
2_5
2
4_1
4_2
4
5_1
5_2
5_3
5_4
5
7_1
7
8_1
8_2
8
!NF {f=1;next}
如果行为空,请设置f=1
并跳过该行
然后,如果line不为空,请测试f
是否为真
{f=0;next}
如果为真,请设置f=0
并跳过该行
1
打印剩下的一行。
ED做了一些gofling
awk 'NF&&!f;{f=!NF}' file
答案 2 :(得分:1)
marks