我只想删除字符串“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",/ /'