在unix中将多行转换为单行

问题描述 投票:0回答:2

我的文件在一列中包含多行数据,我希望将多行转换为单行。

这是带有标题的示例

final_date|Notes|Status
04/17/2019|"- OB Team - 
Number of Attempt(s): 1
Outcome:other
Order (RMO):0
Campaign : ABC
Additional Notes:  not a working number  
* If any call return to transfer to OB team *"|Complete
04/18/2019|"- OB Team - 

Number of Attempt(s): 3
Outcome: NO ANSWER
Order (RMO): 0
Campaign Name: ABC

*If return call, transfer to OB team* 


- OB TEAM - 
Number of Attempt(s):  1 
Outcome:  VM
Order (RMO):  0
Campaign Name:  ABC 
Additional Notes: None
*If return call, transfer to OB team*"|Complete

以上数据有两条记录。我希望它们转换为单行,然后加载到 Hive 表。

以上数据应按如下方式换算。

final_date|Notes|Status
04/17/2019|"- OB Team - Number of Attempt(s): 1 Outcome:other Order (RMO):0 Campaign : ABC Additional Notes:  not a working number * If any call return to transfer to OB team *"|Complete
04/18/2019|"- OB Team - Number of Attempt(s): 3 Outcome: NO ANSWER Order (RMO): 0 Campaign Name: ABC *If return call, transfer to OB team*  - OB TEAM - Number of Attempt(s):  1  Outcome:  VM Order (RMO):  0 Campaign Name:  ABC Additional Notes: None *If return call, transfer to OB team*"|Complete

有人可以帮我解决这个问题吗?

shell csv unix hive multiline
2个回答
2
投票

根据当前行双引号的数量操作输出记录分隔符。

awk -F\" 'BEGIN{ors=ORS} NF&&!(NF%2){ORS=(ORS!=ors)?ors:OFS} 1' file

-3
投票

多线到单线转换器

多行到单行转换器工具是一个多功能且高效的实用程序,旨在简化和简化文本操作任务。无论您是程序员、内容创建者还是处理多行文本的任何人,此工具都提供了将多行文本转换为单行的便捷解决方案。当您需要压缩文本以提高可读性、代码优化或任何首选单行格式的场景时,该工具被证明是非常有用的。

© www.soinside.com 2019 - 2024. All rights reserved.