簡體   English   中英

使用Powershell替換csv文件中雙反逗號(“”)之外的逗號?

[英]Replace commas that are not within double inverted commas(“”) from csv files using powershell?

我有一個巨大的csv文件(大約100GB)。 我的問題是我需要用分號(;)替換文件中的逗號(,),而不是兩次反轉的逗號(“”)中的逗號。

我嘗試了幾種方法,但似乎都沒有用。 同樣,此修改也需要在Windows上進行,因此sed和awk都不可行。

例:
輸入:“ A,B,C”,D,E,“ FG”,“ H,J”,K
輸出:“ A,B,C”; D; R;“ FG”; H,J; K

完成此操作后,我需要刪除“。

我可以從文件中刪除“,但分號替換每次都會失敗。

請讓我知道這是否可以通過Powershell實現。

這應同時注意分隔符的替換和雙引號的刪除:

 Get-Content ./File.csv -ReadCount 1000 |
 foreach { $_ -replace ',(?=(?:[^"]|"[^"]*")*$)',';' -replace '"' } |
 Add-Content ./NewFile.csv 

並且無需第三方實用程序即可有效處理大型文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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