我正在尝试解析一个大型文本文件(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
其中...是您想要对数据执行的任何操作。