我有一条线在一个文件中,如下所示: 桑达搜索和替换
LDAP_EXTERNAL_URL=ldap://server.domain.com:389
我需要server2.domain.com:399
开始//
后取代一切以获得与正则表达式头痛。请指教。
我有一条线在一个文件中,如下所示: 桑达搜索和替换
LDAP_EXTERNAL_URL=ldap://server.domain.com:389
我需要server2.domain.com:399
开始//
后取代一切以获得与正则表达式头痛。请指教。
如果您没有严格使用sed,您也可以使用以下内容。
perl -pe 's!^LDAP[^/]*//server\K.*!2.domain.com:399!' file
+1,总是一种享受你的精简perl工作的方式。 :) @丹,如果其中一个答案适合您,请点击左侧的复选标记,这是代表系统如何在这里工作。谢谢! – zx81
也许:
sed -r 's|^(.*ldap://).*|\1server2.domain.com:339|' file
好,使之更加完整:
sed -r 's|^(LDAP_EXTERNAL_URL=ldap://).*|\1server2.domain.com:339|' file
添加-i
启用内嵌编辑。
应该工作,但在我看来,如果只有一行需要更改,从'LDAP_EXTERNAL_URL'到'//'而不是仅仅'ldap://'URL的匹配可能会更安全。当然最终还是取决于OP的文件内容。 – Qeole
@Qeole谢谢。我考虑过了。 – konsolebox
难道这只是你需要改变的一行吗,还是用这个URL多行? – Joel
只是一条线。 – Dan