Bash shell脚本:将文本附加到现有文件的特定行而不会换行

时间:2018-03-28 02:34:30

标签: linux string bash shell

我有一个名为tmp.mount的文件,其中包含以下内容

[Mount]
Options=mode=1777,strictatime,noexec,nosuid
  1. 我想通过单词Options =来搜索文件 行号。
  2. 我将通过给定的行号搜索单词nodev。
  3. 如果它不存在,我会将单词nodev插入到末尾 这条线通过给定的行号。
  4. 结果

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

    全部没有换行符。大多数解决方案是使用sed,但我对如何将线搜索与sed合并无能为力。

1 个答案:

答案 0 :(得分:1)

awk '/Options=/ && ! /nodev/ {print $0 ",nodev"; next};1' file

无需获取行号,只需附加",nodev"到相应的行