【发布时间】:2011-10-04 21:37:12
【问题描述】:
我需要清理的数据转储中包含文字、可见和转义控制字符的奇怪组合(最好使用 sed),例如 ^A, ^B、\N(字面意思)和可见的换行符。我需要清理文件以使可见的换行符保持不变,将每个 ^A 替换为制表符,并剥离每个 ^B\N^B\N (在每个 unix 时间值之后数据,例如 13068505731812510)。
这是在 shell 命令中使用less 的内容(在 shell 中,^A 和 ^B 字符有深色背景表示控制字符):
^A guid ^A unix-time ^B\N^B\N^A 4 ^A强> 192.168.21.136 ^A 7.0 ^A IE ^A 8 ^A guid ^A WinNT ^A ...(可见换行符)
或者一个字面的例子……
... ^A40C4595C-0B9D-46B7-8214-3D9CE2B5F057^A13071154505579551^B\N^B\N^A4^A192.168.21.136^A7.0^AIE^A8^AE6979203-F58B-4D20-9D66-7F5369BF9E32^AWinXP^A ...
到目前为止,我一直提供的转义序列 sed 并没有产生预期的输出。有谁知道在尽可能少的时间内完成这一切所需的魔法逃脱? (有很多文件,时间很重要。)谢谢!如果我可以在同一次传递中将 unix 时间数字转换为人类可读的时间,则可以加分。
【问题讨论】:
标签: sed escaping control-characters