通过分隔符而不是 EOL 解析数据文件的行

通过分隔符而不是 EOL 解析数据文件的行

我正在尝试解析一个大型文本文件(600MB)的原始数据,我无法控制其格式。

问题是行尾放置得不好:

head -1 filename | wc -w

每行生成约 1.2K 字数。我的目标行由 \x06 字符分隔。

如何重新组织这些行,以便每一行都以 ^F (\x06) 结束/开始?我读过很多 sed 教程,但没有提到这种过程......

^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0

通过 sed 或类似工具执行此操作的最佳方法是什么?

答案1

awk允许您使用换行符以外的记录分隔符。您可以按如下方式使用它:

awk 'BEGIN { ORS=RS="\x06" } ...' input-file

其中...是您想要对数据执行的任何操作。

相关内容