使用Shell脚本从文件中删除特定单词

时间:2019-07-01 05:07:11

标签: sed

我会要求一些基本的shell脚本帮助,这些脚本应该完成以下工作。

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

示例

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

network;private;Temp;Windows;System32

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

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

输出不符合预期。整个行将被删除,而不仅仅是单词 Temp;

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

2 个答案:

答案 0 :(得分:1)

sed与行匹配,并且/d是delete指令,这就是为什么要删除行的原因。相反,请使用替换用任何内容替换有问题的单词:

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

/g修饰语的意思是“ globlal”,以防冒犯性单词出现多次。通常,我将暂不使用-i(内联)标志,直到您确定命令或使用-i .backup

答案 1 :(得分:0)

谢谢。我使用了您的建议,但无法通过。我感谢输入。

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

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

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