我有具有以下行的代理配置文件:如何在Linux中的命令行中將文本替換爲文件?
Allow 212.21.3.44
我想,當它改變了我的新的IP地址來替換IP地址部分。在搜索時使用行號可能會更容易& ndash我認爲配置文件在所有特定設置下都不會改變。
我該如何從命令行執行類似Perl,sed等的操作?
我有具有以下行的代理配置文件:如何在Linux中的命令行中將文本替換爲文件?
Allow 212.21.3.44
我想,當它改變了我的新的IP地址來替換IP地址部分。在搜索時使用行號可能會更容易& ndash我認爲配置文件在所有特定設置下都不會改變。
我該如何從命令行執行類似Perl,sed等的操作?
如果你想用sed來改變一個特定的行號,你可以使用:
sed -i '<line number> s/Allow .*$/Allow <new ip>/g' <filename>
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上對我的作品)。
和大多數Linux機器的可以加一個'-i'選項讓'sed'讓它直接對該文件進行更改。 – 2010-08-04 20:10:49
@Kaleb不知道!謝謝 - 更新我的答案。 – 2010-08-04 20:12:16
似乎危險批量更改文件中的所有IP地址到新的,當海報提到一個特定行 – 2010-08-04 20:15:18
的情況下,行號不會改變
sed -i '/Allow/s/Allow .*$/Allow <new ip>/' <filename>
很好用 - 謝謝! – jack 2010-08-04 20:18:21