You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Bash脚本无换行向tmp.mount指定行追加nodev参数

使用sed实现需求的解决方案

没问题,我来帮你拆解这个sed命令的实现逻辑,完全符合你的需求:

sed -i '/Options=/ { /nodev/! s/$/,nodev/ }' tmp.mount

命令逐部分解释:

  • -i:启用原地编辑,直接修改tmp.mount文件内容,不需要额外输出到新文件。如果你用的是macOS系统,需要写成sed -i '' '/Options=/ { /nodev/! s/$/,nodev/ }' tmp.mount(macOS的sed要求指定备份后缀,空字符串表示不生成备份文件)。
  • /Options=/:先定位所有包含Options=关键词的行,只对这些行执行后续操作。
  • { ... }:把括号里的命令组合成一个代码块,确保它们只作用于前面匹配到的行。
  • /nodev/!:匹配不包含nodev的行(!符号表示取反),如果行里已经有nodev,就跳过后续操作。
  • s/$/,nodev/:用替换命令在行的末尾($表示行结束位置)追加,nodev,实现无换行添加的效果。

效果演示:

原文件内容:

[Mount] Options=mode=1777,strictatime,noexec,nosuid

执行命令后,文件内容变为:

[Mount] Options=mode=1777,strictatime,noexec,nosuid,nodev

如果目标行已经包含nodev(比如[Mount] Options=mode=1777,nodev,noexec,nosuid),执行命令后该行不会有任何变化,避免重复添加。

内容的提问来源于stack exchange,提问作者Dickson Chu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:23:29