Sto utilizzando l'editor di flusso sed per convertire un grande insieme di dati di file di testo (400 MB) in un formato CSV.sed - rimuovere le virgolette tra virgolette in file CSV di grandi dimensioni
Sono venuto molto vicino a finire, ma il problema in sospeso sono le citazioni all'interno di citazioni, su un dato come questo:
1,word1,"description for word1","another text",""text contains "double quotes" some more text"
2,word2,"description for word2","another text","text may not contain double quotes, but may contain commas ,"
3,word3,"description for "word3"","another text","more text and more"
L'output desiderato è:
1,word1,"description for word1","another text","text contains double quotes some more text"
2,word2,"description for word2","another text","text may not contain double quotes, but may contain commas ,"
3,word3,"description for word3","another text","more text and more"
Ho cercato in giro per aiuto, ma non mi sto avvicinando troppo alla soluzione, ho provato i seguenti sed con modelli regex:
sed -i 's/(?<!^\s*|,)""(?!,""|\s*$)//g' *.txt
sed -i 's/(?<=[^,])"(?=[^,])//g' *.txt
Queste sono le domande che seguono, ma non sembrano lavorare per sed:
I file originali sono * .txt e sto cercando di modificare al loro posto con sed.
Qual è l'output desiderato? –
L'ho aggiornato, grazie. – nol