我正在编写一个bash脚本,并且在该脚本中我需要对特定文件执行操作,当我完成操作后,继续使用其余的脚本。
我需要扫描一个文件,当我找到一个特定的配置行时,我需要先在一个配置中注释,然后继续注释掉另一个配置选项。
编辑:哇,我的第一个问题,我遗漏了最重要的细节!我用这个具体的例子编辑了我的问题:
我正在尝试编辑文件dhcpd.conf,我正在寻找这些行注释掉:
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
所以他们最终看起来像这样:
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
此时bash脚本将继续执行并执行一堆其他指令。
您可以给我的任何帮助将不胜感激。 : - )
答案 0 :(得分:0)
可能有更好的解决方案,但您可以尝试使用此文件。
$ cat file.txt
option domain-name example.org;
dont touch me
option domain-name-servers ns1.example.org
dont touch this
$ sed -i 's/^option domain-name/#option domain-name/' file.txt
$ cat file.txt
#option domain-name example.org;
dont touch me
#option domain-name-servers ns1.example.org
dont touch this
$ sed -i 's/^option domain-name/#option domain-name/' file.txt
答案 1 :(得分:0)
如果您需要在一个配置文件上执行许多不同的指令,您可以将指令转换为sed命令,然后运行sed -f commands config.file.txt
您必须在此处找到最有用的sed用法示例:http://sed.sourceforge.net/sed1line.txt