我有一台主机,其主机名是 ,babuntu10而且hostname12我只想从fstab条目中删除主机名之一,但以下sed命令会同时删除它们:
sed -i '/'"$HOSTNAME:"'/,$d' /etc/fstab
Run Code Online (Sandbox Code Playgroud)
输入文件:
babuntu10:/root/products/babuntu10 /root/products/babuntu10 nfs soft,timeo=1,retrans=1 0 0
babuntu12:/root/products/babuntu12 /root/products/babuntu12 nfs soft,timeo=1,retrans=1 0 0
Run Code Online (Sandbox Code Playgroud)
我只需要删除带有主机名的条目。
sed '/x/,$d'要求 sed 删除从第一个匹配行x到文件末尾的所有行。听起来你只是想删除匹配的行,这样就可以了sed '/x/d'。
您可能还应该添加一个字符串开头锚点^并使用:
sed -i '/^'"$HOSTNAME"':/d' /etc/fstab
Run Code Online (Sandbox Code Playgroud)
或者,由于脚本的其余部分非常简短,您可以在整个脚本中使用双引号:
sed -i "/^$HOSTNAME:/d" /etc/fstab
Run Code Online (Sandbox Code Playgroud)