删除文件中一行中的单词而不删除整行

删除文件中一行中的单词而不删除整行

我只想删除字符串“www.yahoo.com”,仅当该行以以下开头时指定主机名在 [ 中的位置并以]另外,如果字符串后面跟着逗号(,),我也需要删除该逗号

assign where host.name in [ "www.google.com","www.yahoo.com","www.facebook.com" ]

我的输出应该是这样的

assign where host.name in [ "www.google.com", "www.facebook.com" ]

我不知道如何实现这一目标。请给我一些关于这段代码的想法。

答案1

像这样的问题通常用 sed、awk 或 Perl 来处理。标准的 sed 解决方案是

sed '/^assign where host.name in \[.*\]$/s/"www.yahoo.com",//'

你的措辞很奇怪。人们通常不会说

我有一个宠物 ca,后面是 t。

他们说

我有一只宠物猫。

同样,而不是

字符串"www.yahoo.com"...如果字符串后跟逗号 ( ,)

你应该说

一个字符串"www.yahoo.com",

除非你的意思更复杂,比如也许

字符串"www.yahoo.com"…如果字符串后跟逗号 ( ,),可以选择用空格分隔

在这种情况下你应该这么说。

上面的命令执行您的问题所要求的操作:它删除字符串"www.yahoo.com",。如果你想做你想做的事显示,以及您在评论中所说的内容,添加一个空格:

sed '/^assign where host.name in \[.*\]$/s/"www.yahoo.com",/ /'

相关内容