簡體   English   中英

如何刪除 linux/unix 文件中特定行中間的逗號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM