2010-08-04 29 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> 
相關問題