【发布时间】:2021-03-06 16:41:38
【问题描述】:
我目前正在做一个项目,将大量 C 程序移植到一个新的 Linux 系统上。我的目标是尽可能自动化大部分简单的重复错误。
现在我正在处理许多无效的 NULL 分配,在特定的行上应该是 '\0'。示例:
attribute = NULL;
应该是
attribute = '\0';
我有一个发生此错误的所有行的列表。所以现在我需要做的就是创建一个将 NULL 更改为 \0 的脚本。这是我尝试过的代码行,有不同的变化:
sed -i "${1}s/NULL/\\0/" ${2}
${1} 是发生错误的行,${2} 是文件名。
编辑:
不是用 \0 替换 NULL,而是将其替换为 'NULL'。我需要一个命令,将 NULL 替换为字符 \ 和 0,而不是特殊字符。
【问题讨论】:
-
您是在问如何获取替换字符串中的单引号?不清楚你想要什么。
-
您的帖子中似乎没有问题或问题描述。假设您的命令没有按预期工作,请展示您如何调用它、您获得的实际结果/输出以及您期望获得的结果。请edit您的问题添加此信息。
-
@Bodo 我很抱歉。我用更多信息编辑了帖子,这是我的错。如果您需要更多说明,请告诉我
-
我真的希望你有版本控制,这样你就可以检查你的替换脚本不会失控并破坏一切。
git reset --hard是退出sed脚本出错的好方法。 -
@tadman 非常正确,我只是假设我的 sed 命令格式可以轻松修复。我将开始研究其他选择。谢谢!