【问题标题】:Remove a specific word from a file using shell script使用 shell 脚本从文件中删除特定单词
【发布时间】:2019-07-02 06:10:25
【问题描述】:

我会请求一些关于应该执行以下工作的基本 shell 脚本的帮助。

  1. 从给定文件中归档特定单词(文件路径始终不变)
  2. 备份文件
  3. 删除特定单词或将单词替换为;
  4. 保存文件更改

例子

  • 文件名 - abc.cfg
  • 包含以下几行

network;private;Temp;Windows;System32

我已使用以下 SED 命令进行操作

sed -i -e "/Temp;/d" abc.cfg

输出不如预期。整行被删除,而不仅仅是单词 Temp;

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: sed


    【解决方案1】:

    sed 与行匹配,/d 是删除指令,这就是你得到删除行的原因。相反,使用替换来替换有问题的单词:

    sed 's/Temp;//g' abc.cfg
    

    /g 修饰符的意思是“全局”,以防违规词出现不止一次。我会暂缓使用-i(内联)标志,直到你确定你的命令,一般来说,或者使用-i .backup。

    【讨论】:

      【解决方案2】:

      谢谢。我使用了您的建议,但无法通过。我很感激你的意见。

      我能够使用以下 SED 语法实现这一目标

      sed -e "s/Temp//g" -i.backup abc.cfg

      我想在更改之前进行备份,因此 -i 很有帮助。

      【讨论】:

      • 这不是答案,而是评论。我没有收到通知,只是偶然看到了这个。请删除此答案,如果您需要澄清,请评论我的答案。如果我的回答确实解决了您的问题,无需评论,请点击赞成/反对票旁边的 V 勾号,以便未来的读者知道这个问题已经解决。您可能想再看看tour 以更好地了解这个与普通论坛有很大不同的网站。
      猜你喜欢
      • 2022-10-23
      • 1970-01-01
      • 2013-02-02
      • 2022-07-11
      • 1970-01-01
      • 2023-04-02
      • 2017-03-31
      • 2020-09-20
      • 2018-12-22
      相关资源
      最近更新 更多