【发布时间】:2016-10-27 09:08:36
【问题描述】:
我有一个文件,其中的记录由 | 分隔。有几个换行符,第一行的一部分移动到第二行。如果我计算 |在特定的行中,它应该始终保持一致。如何识别哪一行有换行符并将两行附加到一行中以作为“|”的数量每一行都是一致的?
文件如下所示:
DeptID|EmpFName|EmpLName|Salary
Engg|Sam|Le
wis|1000
Engg|Smith|Davis|2000
HR|Denis
|Lillie|1500
HR|Danny|Borr
inson|3000
IT|David|Letterman|2000
IT|John|Newman|3000
而我想计算 '|' 的数量在每一行。
在这种情况下,每行应该有 3 个 '|'每个,但由于换行,情况并非如此,
我最终想要的输出是
DeptID|EmpFName|EmpLName|Salary
Engg|Sam|Lewis|1000
Engg|Smith|Davis|2000
HR|Denis|Lillie|1500
HR|Danny|Borrinson|3000
IT|David|Letterman|2000
IT|John|Newman|3000
【问题讨论】:
-
请发布一些示例数据和预期输出。
-
重复问题中的答案除了添加空间外有效......所以需要进行一些修改,我不知道更改是否微不足道(不是指字段分隔符,而是额外的空间)
-
你不能使用
sed用空字符串替换换行符吗?我的意思是,首先你使用 'awk' 来知道|字符的数量,如果它小于 3,你用一个空字符串删除换行符。 -
@Dominique,是的,我在 sed 中实现了你的想法,很简单,因为最大拆分是跨两行...