【发布时间】:2016-07-28 03:55:30
【问题描述】:
数据文件有 672 列,以制表符作为分隔符,CRLF 位于每一行的末尾,并且在一行内有效地将一行拆分为多行。
***Current***
row1: col1<\t>col2<\t>col3<\t>col4<\r\n>
row2: col1<\t>col2<\r\n>
col3<\r\n>
col4<\r\n>
***Expected***
row1: col1<\t>col2<\t>col3<\t>col4<\r\n>
row2: col1<\t>col2<\t>col3<\t>col4<\r\n>
【问题讨论】:
-
在您的样本上,您如何只能检测到 2 行?
-
@user3089834:不确定你在问什么,这只是“当前”和“结束状态”的一个示例。在 unix 上,我使用 head 对文件中的数据进行采样。
-
如果数据在一行中有 CRLF 作为您的样本,如果您无法检测到行尾,则无法解决您的问题。和我一起,我在您的示例数据上看到 4 行,因为我认为“\r\n”是一行的结尾。
-
我认为这是一个定义明确的问题。不幸的是,它不是一个使用 unix/linux 面向行的工具可以轻松解决的问题。理想情况下,解决方案是返回源并在从源中提取它时对其进行修复。这里发布了问题的解决方案,但通常作者使用奇怪的术语,不包括一个很好的例子(如你所见)和其他寻找答案的障碍。希望有书面答案的人之一会看到这一点并提供帮助。我会为
bash和/或awk添加一个标签,以吸引更多的读者。将 #of flwrs 悬停在您的标签上。好L -
@BalajiGA - 期待看到您的尝试。我有一个简单的解决方案,但我想在发布之前先看看你的作品。