【问题标题】:What does this command do这个命令有什么作用
【发布时间】:2026-01-09 09:10:01
【问题描述】:

我有 nw 可执行文件...

sed -i 's/udev\.so\.0/udev.so.1/g' nw

Node-webkit 应用程序二进制文件。

我正在运行 ubuntu 14.04Lts,我尝试使用 ./nw 打开 nw。我打不开。

然后我输入了上面的命令。它开始工作了。

我很好奇,不知道该命令对我的可执行文件做了什么。

我知道 sed 用于将文件模式与正则表达式匹配。它如何对 .exe (application/x-executable) 文件进行操作。

请任何人解释一下。

【问题讨论】:

    标签: unix command node-webkit


    【解决方案1】:

    您使用的 sed 命令搜索 nw 可执行文件(就像想象中的普通文本文件一样)以查找字符串 udev.so.0 的任何出现,并将其替换为 udev .so.1。点前的反斜杠 \. 仅用于转义 . 字符,这是 sed 的特殊字符(它表示任何字符 - 像 * 在 Windows 系统上)。命令末尾的 g 字符也表示继续搜索特定行,即使已经找到了第一个匹配项。这样整个文件 - 这里是 nw - 正在被搜索和替换。

    【讨论】:

    • 是的并且....文件nw在修改完成后仍然是一个工作可执行文件的概率接近于零。 sed 旨在处理以\n(换行符)字符终止文本行且不包含空字符的文本文件。祝大家好运。
    • 这是一个可执行文件而不是文本文件。 sed 如何查找搜索?我的意思是是否可以在 exe 文件中搜索文本...?
    • 如果您在控制台上运行strings nw,您会看到即使是可执行文件也包含一些字符串。正如 Shelter 评论的那样,上述替换或多或少是一种黑客方法。你不能保证这会奏效。但是,sed 命令将“成功地”替换 IMO。