0
votes

Convertir CSV en TSV

Comment convertissez-vous ce fichier csv en un fichier délimité par onglet?

"Country"   "Percent"   "Percent of patients"   "home health"   "home health agency"    "friends and family"    "Surveys"   "Response"
"Nation"        "88"    "85"    "83"    "84"    "78"    ""


3 Réponses :


0
votes

J'utilise FPAT avec gnu awk pour gérer les fichiers CSV xxx

Je ne sais pas ce que vous entendez par la dernière colonne est manquant. Si c'est vide , vous ne le verrez pas.


2 commentaires

Je veux dire qu'il y a 8 colonnes dans l'en-tête et seulement 7 colonnes dans les données délimitées de l'onglet, la dernière colonne est donc manquée.


@Aaron ne comprend toujours pas. Que voudriez-vous que vous souhaitez obtenir pour la colonne manquante? Un espace vide? Une étoile? Obtenir des données d'autres endroits?



1
votes

En réalité, votre dernière colonne n'est pas manquante du tout. Vous ne voyez tout simplement pas parce que c'est un onglet. Vous pouvez le vérifier avec xxd code>.

En outre, vous n'avez pas besoin d'échapper à des virgules et de doubles citations dans SED puisque vous avez tout à l'intérieur de citations simples. p> xxx pré>

ceci montre que la dernière ligne se termine avec un onglet ( x09 code>) après la dernière citation et avant la fin de la nouvelle ligne: p> xxx pré>

Qu'est-ce que "Manquant" est la double citation autour de ce dernier Valeur vide. Mais vous n'en avez pas besoin. Si vous voulez vraiment ces doubles citations, vous pouvez ajouter ceci à votre commande SED: p> xxx pré>

Il remplacera un onglet à l'extrémité d'une ligne avec une onglet suivi de 2 Double-citations. P>

Cependant, ce simple SED code> La substitution peut bien sûr échouer facilement en fonction de vos données. p>

par exemple (en utilisant - au lieu de \ t code> pour la visibilité), si vous avez des colonnes vides qui ne sont pas à la fin: p> xxx pré>

va produire p >

csvtool -t COMMA -u TAB cat $YOUR_CSV


0 commentaires

0
votes

avec gnu awk. xxx

sortie: xxx


3 commentaires

Mes en-têtes ont une virgule dans eux, donc cela ne fonctionne pas pour cela.


Pourrait-il être que cette information importante manque dans votre question?


Ajouté à la question. Merci.