2010-08-04 67 views
1

我有具有以下行的代理配置文件:如何在Linux中的命令行中将文本替换为文件?

Allow 212.21.3.44 

我想,当它改变了我的新的IP地址来替换IP地址部分。在搜索时使用行号可能会更容易& ndash我认为配置文件在所有特定设置下都不会改变。

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

回答

2

如果你想用sed来改变一个特定的行号,你可以使用:

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

+0

很好用 - 谢谢! – jack 2010-08-04 20:18:21

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上对我的作品)。

+0

和大多数Linux机器的可以加一个'-i'选项让's​​ed'让它直接对该文件进行更改。 – 2010-08-04 20:10:49

+0

@Kaleb不知道!谢谢 - 更新我的答案。 – 2010-08-04 20:12:16

+0

似乎危险批量更改文件中的所有IP地址到新的,当海报提到一个特定行 – 2010-08-04 20:15:18

1

的情况下,行号不会改变

sed -i '/Allow/s/Allow .*$/Allow <new ip>/' <filename> 
相关问题