我希望通过命令行在Ubuntu中启用multiverse存储库。
sed -i "/^# deb.*multiverse/ s/^# //" /etc/apt/sources.list && apt-get update这个命令每次都会运行apt-get update,但是只有当sed将行注释掉时才有必要。
是否有简单的方法来检测sed是否替换字符串并根据结果运行命令?
发布于 2014-12-23 21:12:16
这里最容易做的事情可能是首先对注释行进行grep:
grep -q '^# deb.*multiverse' /etc/apt/sources.list &&
sed -i '/^# deb.*multiverse/ s/^# //' /etc/apt/sources.list &&
apt-get update发布于 2014-12-23 21:33:14
{ sed -i '/^# \(deb.*multiv.*\)/h;s//\1/p
$x;s//apt-get update/w /dev/fd/2' file
} 2>&1 >/dev/null | sh -v该命令只有在读取apt-get update时执行至少一个替换操作时,才会输出通过管道传递给sh的行file。
https://unix.stackexchange.com/questions/175680
复制相似问题