sed + 从 bash 文件中删除函数

sed + delete function from bash file

我们想添加一些功能作为 rm 功能到 bashrc ,并在一些配置后删除功能 rm

所以下面首先介绍如何将函数rm添加到bashrc

的方法
echo '
function rm
{
echo "ERROR rm command not allowed on this machine"
return 1
}
' >>/root/.bashrc

然后重新加载

source /root/.bashrc

在脚本的某些阶段,我们需要采用相反的方法 - 删除函数 rm

function rm
{
echo "ERROR rm command not allowed on this machine"
return 1
}

所以我创建了以下 sed

sed -i '1,/function/p;/}/,$p' /root/.bashrc

但我对上述方法不太满意 - 删除函数

我将不胜感激从 /root/.nashrc

中获得删除函数 rm 的更好方法

假设这是您的 bashrc 文件中唯一的 function rm 行,您最初可以干 运行

$ sed '/function rm/,/}/d' /root/.bashrc

如果满意,请添加 -i 标志。

如果上述情况属实并且您知道插入的行数,您也可以使用这种方法。

$ sed '/function rm/,+4d' /root/.bashrc