我有一个日志/文本文件,当用 less 打开时,其中充满了突出显示的 ^B 行。通常我会看到 ^A 并且我有以下 sed 命令将 ^A 替换为 |。我不久前发现了它,不知道它是如何工作的。
sed 's/\x1/\|/g'
这似乎是我第一次看到 ^B 并且 sed 命令对此不起作用。
如何修改 sed 命令来处理 ^A、^B 或任何其他可能的组合?
^B 是 \x2,所以你只需将 \x1 更改为 \x2 即可修复它。 更一般地,您可以使用“man ascii”查看整个 ASCII 表,并发现 ^B(十六进制 02)比 B(十六进制 42)小 40 进制。 同样,^[ (ESC, hex 1B) 比 [ (hex 5B) 小 40 进制。
要处理一系列字符,请使用括号。 例如, sed 's/[\x1-\x1f]/|/g' 将用竖线替换所有低编号控制字符。