我想從文件中刪除特定的單詞。從字符串中刪除單詞
比方說文件名agent_file.txt
包含以下字符串
-queues winall,dustat,envstat,netstat,iostat,winconfig,netwarestat,netwareconfig,pawmin,paw15,db2,sqlserver,vmstatvmw2,vmstatvm2,netstatvm,netstatvmw,vmstatvm,vmstatvmw,iostatvm,iostatvmw,envstatvm,envstatvmw,vmscpu,vmsdisk,vmsmem,vmstatvcw,process,winprocess
我想刪除字符或僅在該文件中的字process
,所以我的Unix
perl -pi -e 's/process//g' agent_file.txt
輸出將是
-queues winall,dustat,envstat,netstat,iostat,winconfig,netwarestat,netwareconfig,pawmin,paw15,db2,sqlserver,vmstatvmw2,vmstatvm2,netstatvm,netstatvmw,vmstatvm,vmstatvmw,iostatvm,iostatvmw,envstatvm,envstatvmw,vmscpu,vmsdisk,vmsmem,vmstatvcw,,win
這個詞是delet編輯,但它也刪除winprocess
的一部分。
如何刪除process
以及前面的逗號,
?
輸出應該
-queues winall,dustat,envstat,netstat,iostat,winconfig,netwarestat,netwareconfig,pawmin,paw15,db2,sqlserver,vmstatvmw2,vmstatvm2,netstatvm,netstatvmw,vmstatvm,vmstatvmw,iostatvm,iostatvmw,envstatvm,envstatvmw,vmscpu,vmsdisk,vmsmem,vmstatvcw,winprocess
'\ b'似乎是GNU專用的。此解決方案在OS X或* BSD中不起作用。 – ghoti
謝謝@karakfa這有助於很多,但是這隻適用於GNU sed ...但不能在AIX下的sed中工作... =( – MrAZ
這不會刪除多餘的前導或尾隨逗號,如果'process'出現在列表的開頭或結尾 – Borodin