173 votes

Comment extraire une colonne d'un fichier CSV

Si j'ai un fichier csv, existe-t-il un moyen rapide en bash d'imprimer le contenu d'une seule colonne ? On peut supposer en toute sécurité que chaque ligne a le même nombre de colonnes, mais le contenu de chaque colonne aurait une longueur différente.

203voto

synthesizerpatel Points 9762

Vous pourriez utiliser awk pour cela. Changez '$2' par la colonne n que vous voulez.

awk -F "\"*,\"*" '{print $2}' textfile.csv

153voto

madrag Points 216

Oui. cat mycsv.csv | cut -d ',' -f3 affichera la 3ème colonne.

102voto

Samar Points 1447

La manière la plus simple que j'ai pu trouver pour accomplir cela a été d'utiliser simplement csvtool. J'avais d'autres cas d'utilisation également pour utiliser csvtool et il peut gérer correctement les guillemets ou délimiteurs s'ils apparaissent dans les données de la colonne elle-même.

csvtool format '%(2)\n' input.csv

Remplacer 2 par le numéro de colonne permettra d'extraire efficacement les données de la colonne que vous recherchez.

19voto

cevaris Points 1145

Atterri ici en cherchant à extraire d'un fichier séparé par des tabulations. J'ai pensé que je rajouterais.

cat textfile.tsv | cut -f2 -s

-f2 extrait la 2ème colonne, qui n'est pas indexée à zéro, ou la deuxième colonne.

17voto

wordsforthewise Points 2907

Je pense que le plus simple est d'utiliser csvkit :

Obtient la 2ème colonne : csvcut -c 2 file.csv

Cependant, il y a aussi csvtool, et probablement d'autres outils csv bash disponibles :

sudo apt-get install csvtool (pour les systèmes basés sur Debian)

Cela renverrait une colonne avec la première ligne ayant 'ID' dedans : csvtool namedcol ID csv_file.csv

Cela renverrait la quatrième ligne : csvtool col 4 csv_file.csv

Si vous voulez supprimer la ligne d'en-tête :

csvtool col 4 csv_file.csv | sed '1d'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X