gpt4 book ai didi

在 l 命令的末尾添加额外的字符

转载 作者:行者123 更新时间:2023-12-04 18:35:37 26 4
gpt4 key购买 nike

我正在尝试用 cshell 中的 sed 替换配置文件中的值。

但是它给了我错误:

sed: 1: "/usr/local/etc/raddb/mo ...": extra characters at the end of l command

我正在尝试以下命令:
sed -i "s/private_key_password = .*/private_key_password = test/" /usr/local/etc/raddb/mods-available/eap

我已经查看了 sed 的示例来执行此操作,但它们看起来都与我正在执行的操作相似,这里出了什么问题?

最佳答案

FreeBSD sed 在 -i 之后需要一个参数将原始文件重命名为。例如 sed -i .orig 's/../../' file将原始文件重命名为 file.orig ,并将修改后的文件保存到 file .

这与 GNU sed 不同,这不需要 -i 的参数旗帜。见 sed(1) 完整的文档。这是 POSIX spec 的有用扩展之一不幸的是,它的实现不一致。

现在,"s/private_key_password = .*/private_key_password = test/"部分被解释为 -i 的参数, 和 /usr/local/etc/raddb/mods-available/eap被解释为命令。因此错误。

所以你想使用:

sed -i .orig "s/private_key_password = .*/private_key_password = test/" /usr/local/etc/raddb/mods-available/eap

然后,您可以使用 diff 检查更改是否正常。并删除 /usr/local/etc/raddb/mods-available/eap.orig如果它们是。

关于在 l 命令的末尾添加额外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com