【发布时间】:2023-03-15 07:35:01
【问题描述】:
我有一个 looks like this 的文本文件。我正在尝试将其转换为标准格式,使用 , 作为列分隔符(它已经存在,\r\n 作为行终止符。
问题是,当前文件有点像固定宽度 + 逗号分隔。每行应有 167 列,以逗号分隔。当前文件中的行形成多行,每行都有一个行终止符。大多数加载/外部表工具不支持这种格式。我想删除的每一行后面还有空白行。
到目前为止我已经尝试过 sed -
zcat myfile.txt.gz | sed 's/^\ *$/%%%/g' | xargs | sed -e 's/%%%/\n/g' -e 's/\ //g' > myfile.txt
上面确实转换了文件,一切看起来都很好。但我注意到有些行没有正确转换。例如,在某些行上,我只有 117 列。
我在 sed 中缺少什么?有没有更好/更快的方法来做到这一点?请注意,我正在处理的每个未压缩文件大约有 25 GB,而且我有数百个。
Desired Output(前两行样本输入)
【问题讨论】:
-
该文件的预期输出是什么?
-
请将示例输入和该示例输入的所需输出添加到您的问题。
-
我已经用示例输入和所需输出更新了问题。
-
@RKKuppala:每行有多少列?
-
每行 167 列,接下来原始文件将有一个空行 - 它应该被删除。