如何用sed替换日志或文本文件中的^B?

问题描述 投票:0回答:1

我有一个日志/文本文件,当用 less 打开时,其中充满了突出显示的 ^B 行。通常我会看到 ^A 并且我有以下 sed 命令将 ^A 替换为 |。我不久前发现了它,不知道它是如何工作的。

sed 's/\x1/\|/g'

这似乎是我第一次看到 ^B 并且 sed 命令对此不起作用。

如何修改 sed 命令来处理 ^A、^B 或任何其他可能的组合?

sed binary-data
1个回答
0
投票

^B 是 \x2,所以你只需将 \x1 更改为 \x2 即可修复它。 更一般地,您可以使用“man ascii”查看整个 ASCII 表,并发现 ^B(十六进制 02)比 B(十六进制 42)小 40 进制。 同样,^[ (ESC, hex 1B) 比 [ (hex 5B) 小 40 进制。

要处理一系列字符,请使用括号。 例如, sed 's/[\x1-\x1f]/|/g' 将用竖线替换所有低编号控制字符。

© www.soinside.com 2019 - 2024. All rights reserved.