[英]How to remove commas in the middle of a specific line in a file in linux/unix
有人試圖在他們的測試描述中提供幫助。 但是,他們在描述中添加了逗號,這樣當測試描述輸出到日志文件時,結果就會有額外的逗號。 這使得解析結果變得困難,因為結果文件中的逗號數量不同。
我想使用 sed 並進入測試文件以從描述中刪除逗號,這樣我們就不會再被咬到了,但我不確定正則表達式應該是什么樣子,因為我需要保留其他所有內容和只刪除逗號。 該行來自 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">
有人可以提示我如何搜索此行並僅刪除逗號,同時保持其他所有內容完好無損嗎? 提前感謝您能給我的任何幫助。
編輯: 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
的行,然后替換,
什么都沒有
完成此操作后, 1
將打印所有內容。
如果您sed -i 'code'
那樣將數據寫回原始文件,請執行以下操作:
awk '/HTTPSamplerProxy/ {gsub(/,/,"")} 1' file > tmp && mv tmp file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.