我有一个这样的文件:
ins.pro.server.pro.net
ins.pro-server2.pro.net
ins.pro-server3.pro.net
ins.pro-server4.pro.net
我想对这个文件进行 cat 但从所有行中删除特定字符串“pro.net”,因此结果如下:
ins.pro-server
ins.pro-server2
ins.pro-server3
ins.pro-server4
预先感谢您的帮助
PS:我之前使用过一些 sed 选项,但它也从“ins.pro-server”中删除了第一部分,使其变为“ins.-server”
答案1
我是根据记忆这样做的,但我相信以下方法应该可行:
cat $文件| sed s/\.pro\.net//
MVP(如下)是正确的。出于某种原因,我在点上的反斜杠没有显示出来(我想我需要转义它们?)。此外,cat 是多余的,因为您可以按照 MVP 建议的方式在末尾添加文件参数。
(我会对他的回答发表评论,但我还没有 50 个代表)(我的回答中的反斜杠最初是缺失的,因为我没有对它们进行转义)
答案2
用这个:
sed "s/\.pro\.net//g" file
首先,您不需要 cat 来实现这一点,其次,请确保使用\.
而不是.
,因为点表示匹配任何符号。它似乎可以工作,但它也会匹配字符串xproynet
,这可能不是您想要的。