[英]CSV file: For values within double quotes, replace commas with semi colon and remove double quotes
[英]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.