如何在linux / unix文件的特定行中删除逗号

有人试图帮助他们的testing描述。 但是,他们在描述中添加了逗号,所以当testing描述输出到日志文件时,结果会有额外的逗号。 由于结果文件中逗号的数量不同,这使得parsing结果变得困难。

我想使用sed,并进入testing文件从描述中删除逗号,所以我们不会再被困在屁股了,但我不知道正则expression式应该是什么样子,因为我需要保留一切,删除逗号。 该行来自jmeter jmx文件。

以下是一些示例行:

1个逗号

HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avgRespTime inst = green, 12 hr" enabled="true"> 

2个逗号

 HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avgRespTime, inst = network, 2 days" enabled="true"> 

有人可以给我一个关于如何search这条线,并删除逗号,同时保持一切完整的提示吗? 提前感谢您的帮助,可以给我。

编辑:在jmx文件中可能还有其他行也包含一个逗号,所以我不能盲目地说出类似于:

 sed -i 's/,//g' file.jmx 

您可以使用tr从给定字符串中删除所有逗号:

 s='HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="avgRespTime, inst = network, 2 days" enabled="true">' tr -d <<< "$s" 

或者在所有具有HTTPSamplerProxy文本的行中使用sed将其内联更改:

 sed -i.bak '/HTTPSamplerProxy/s/,//g' file 

这个awk应该这样做:

 awk '/HTTPSamplerProxy/ {gsub(/,/,"")} 1' file 

它将搜索与HTTPSamplerProxy线,然后替换,没有任何东西
完成这一步之后,将会比打印所有内容。

如果你喜欢把数据写回原始文件,像sed -i 'code'那样:

 awk '/HTTPSamplerProxy/ {gsub(/,/,"")} 1' file > tmp && mv tmp file