如何使用 sed 从需要权限(例如 visudo)的文件中删除一行?

如何使用 sed 从需要权限(例如 visudo)的文件中删除一行?

我想timestamp=20在文件末尾添加此命令visudo,这将增加 sudo 时间 20 分钟。这样我就可以使用我的 bash 脚本来安装许多应用程序。完成后,我想从文件中删除相同的命令visudo

我的问题可能看起来微不足道,但由于visudo需要编辑权限,所以我不知道如何在需要权限的文件中 使用 sed

以下是我所得到的:

echo -e "add the timestamp" | sudo tee -a /etc/sudoers #This will add the timestamp command
sed '31,35' /etc/sudoers #This will remove the timestamp command

第一个命令运行正常。但是,运行第二个命令时出现以下错误:

sed:-e 表达式 #1,字符 5:缺少命令

我可以使用任何建议或修改吗?

答案1

好的,我解决了这个问题。我在数字 35 后面添加了选项-id字母。数字 31 和 35 意味着 sed 将删除行号 31 和行号 35 之间的所有内容。

我还添加了命令,sudo以便可以sed在需要权限的文件中使用......

这是最终的命令:

sudo sed'31,35d'-i /etc/sudoers

相关内容