est-il possible de diviser un énorme fichier CSV et de spécifier le délimiteur à utiliser pour les fichiers générés futurs. Ceci est ma ligne de commande:
3 Réponses :
Voici un en utilisant awk. AVIS: pour le fichier Il utilise des virgules comme séparateur de champ de saisie mais Existe-t-il des virgules dans les champs (c.-à-d. sortie ou plus de résultats similaires: p> fichier code> il crée des fichiers nommés fichier-1 code>, fichier-2 code> etc. "entre guillemets, vous savez" code>), ils seront également considérés comme des délimiteurs. Si tel est le cas, remplacer fs = "," code> avec fpat = "([^,] *) | (\" [^ \ "] + \") " code > et utilisez gnu awk. p>
Ouais, juste couper de: awk ... fichier code> et coller. Vous pouvez également enregistrer sur programme.awk code> entre guillemets simples (à l'exclusion du ' code> s) et: awk -vl = 2 -f programme.awk fichier.awk code>.
Et, comme il y a une discussion sur l'utilisation de la virgule comme délimiteur, vous pouvez supprimer la ligne fs code> à partir du code et utiliser -f, code> (ou le délimiteur que vous aimez) de la Ligne de commande (si vous utilisez le FPAT code>, vous devez remplacer le , code> avec le délimiteur suivant).
Ne réinventez pas la roue, il existe des outils pour formater des fichiers CSV.
en utilisant ou avec des champs cotés doubles tels que dans les données d'entrée: p> depuis CSVFormat CODE> à partir du package cvskit code> (également nommé python-csvkit code> ou python3-csvkit code >) p> Modifier le délimiteur en ; code>: p> split code> nommé vos fichiers de sortie xaa.csv code>, xab.csv code> etc., vous pouvez modifier vos fichiers de sortie avec une boucle comme p>
Vous pouvez utiliser "SED" pour remplacer les devis et les virgules.
cat <csv_file_name> | sed 's/"//g' | sed 's/,/;/g'
Comment utiliseriez-vous le délimiteur? Veuillez indiquer quelques échantillons de données avec la sortie attendue.
Ok je viens d'éditer mon post.
le
c code> dans.csv code> signifie que les virgules, ce qui signifie qu'uncsv code> ne contenant pas de virgules peut être déroutant, je les sauve que TXT et le Utilisezsed code> pour remplacer le; code>.sed -i 's /, /; / g' file.txt code>Il convient de noter qu'il existe de nombreux logiciels / outils permettant d'utiliser différents séparateurs avec
CSV code> S (E.G. Excel CSV Export par exemple). Cela convient si le texte est censé avoir des virgules dans des contextes non éclairés.