这应该是非常直接的,但它让我疯狂。 我需要在文件中更改derby db连接,我想要更改的是它的连接的主机名
jdbc:derby://myhostname.com:1527/myContextRoot;
我不确定主机名是什么,所以需要通配符,其余部分
格式将始终相同。因此,只需更改//
和:1527
之间的文字。
答案 0 :(得分:0)
你会想要这样的东西:
sed s_//.*:1527_//\*:1527_g test.txt
使用_
分隔符以避免弄乱/
。匹配//
和:1527
(包括)之间的字符,然后使用相同的字符和文字*
替换。
答案 1 :(得分:0)
我能想到的最短的解决方案是:
sed -e 's=//[^:]*=//*=' ...
与Mica的回答一样,这使用了一个备用分隔符,并假设主机名在第一个冒号处结束。这会使您的端口保持原位,而不是与其匹配并将其替换为自身。