bash - 获取 "sed error - illegal byte sequence"(在 bash 中)

标签 bash sed

<分区>

进行一些流编辑以更改讨厌的 Parallels 图标。它开发得很差,嵌入到应用程序本身而不是图像文件中。所以我找到了这个有一些很好反馈的 sed 命令:

sudo sed -i.bak s/Parallels_Desktop_Overlay_128/Parallels_Desktop_Overlay_000/g /Applications/Parallels\ Desktop.app/Contents/MacOS/prl_client_app

它返回sed: RE error: illegal byte sequence

谁能解释一下这是什么意思?命令的哪一部分有问题?

最佳答案

尝试设置 LANG 环境变量 (LANG=C sed ...) 或使用此处提到的二进制 sed 工具之一:binary sed replacement

为什么会出错?

没有 LANG=C sed 假定文件以 LANG 中指定的任何编码进行编码,并且文件(二进制文件)可能包含不是有效字符的字节LANG 的编码(因此您可能会得到“非法字节序列”)。

为什么 LANG=C 有效?

C 恰好将所有 ASCII 字符视为其自身,将非 ASCII 字符视为文字。

关于bash - 获取 "sed error - illegal byte sequence"(在 bash 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287564/

相关文章:

linux - 仅在不破坏任何内容的情况下应用补丁

bash - 如何正确格式化主机文件 - bash

bash 脚本 : how to "exit" from sourced script, 并允许非源工作?

sed - 将文本添加到每个 n :th line in a textfile

bash - 循环 sed 的结果

linux - 更新特定行中文本文件中的特定字段

bash - 比较两个文件列(未排序的文件)

python - 使用 Python 输出调用程序

linux - 如果路径不存在尝试另一条路径

linux - 如何让 grep -m1 在 OSX 中工作