如何在Linux中从命令行替换文件中的此文本?

时间:2010-08-04 20:02:49

标签: linux perl command-line sed

我有一个代理配置文件,其中包含以下行:

Allow 212.21.3.44

我希望在更改时用我的新IP地址替换该IP地址部分。在搜索时可能更容易使用行号& ndash我认为除了特定设置之外,配置文件根本不会改变。

如何从命令行执行类似Perl,sed等的操作?

3 个答案:

答案 0 :(得分:2)

如果您想使用sed更改特定的行号,可以使用:

sed -i '<line number> s/Allow .*$/Allow <new ip>/g' <filename>

答案 1 :(得分:1)

sed -i 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/my.new.ip.here/' file.txt

-i标志会改变文件的位置(取决于您的发行版/ * nix的风格 - 对我来说适用于Ubuntu)。

答案 2 :(得分:1)

如果行号确实发生了变化

sed -i '/Allow/s/Allow .*$/Allow <new ip>/' <filename>