Comment rejoindre et plusieurs colonnes dans le fichier de format CSV

Comment rejoindre et plusieurs colonnes dans le fichier de format CSV

Dans l'exemple ci-dessous, vous pouvez trouver quelques conseils sur la façon de rejoindre les colonnes de plusieurs fichiers vers un seul fichier de valeur séparée par virgule (CSV). Pour lire une colonne Formez un fichier multiple que nous pouvons utiliser pâte commande. Considérez un exemple suivant. Dans notre répertoire de sable, nous avons 3 fichiers où chacun contient une seule colonne de date:

$ LS F1 F2 F3 $ Cat F1 AZ DR QW RT ER $ CAT F2 IU DR GG HH JJ QQ EE UI $ CAT F3 QP DF 

Ensuite, nous pouvons les rejoindre ensemble en utilisant pâte:

$ Paste F1 F2 F3 AZ IU QP DR DR DF QW GG RT HH ER JJ QQ EE UI 

Par défaut, la commande paste utilisera LANGUETTE Pour séparer toutes les colonnes les unes des autres. Ce comportement peut être écrasé en utilisant -d option. Par exemple, au lieu d'un fichier délimité par onglet, nous créons un fichier délimité par virgule:

$ Paste -D, F1 F2 F3 AZ, IU, QP DR, DR, DF QW, GG, RT, HH, ER, JJ ,, QQ ,, EE ,, UI, 

Ok, c'était facile. Mais qu'en est-il de rejoindre une colonne sélectionnée à partir de plusieurs fichiers de colonnes? Considérez un suivant LANGUETTE les fichiers d'envoi de case délimités où chaque fichier contient plus d'une colonne:

$ ls f4 f5 f6 $ cat f4 qw mn qw ty ix ao pi er sy car 

L'utilisation d'une pâte sur tous les fichiers rejoindra toutes les colonnes en une seule sortie:

$ Paste F4 F5 F6 QW MN QW RK WP Tr er Wm Ty IX AO LP CY UT VB MQ PI EM SY WN EM RP EL ST 

Une fois que nous avons la sortie ci-dessus, nous pouvons utiliser couper ou awk Commandes pour sélectionner uniquement les colonnes qui nous intéressent. Dans l'exemple suivant, nous rejoindrons un deuxième et troisième à partir d'un F4 fichier, première colonne de F5 fichier et dernière colonne de F6 avec , En tant que délimiteur:

$ Paste F4 F5 F6 | awk 'begin ofs = "," print $ 2, $ 3, $ 4, 8 $' mn, qw, rk, wm ix, ao, lp, mq er, sy, wn, st 

Veuillez noter que vous pouvez spécifier les colonnes de sortie dans n'importe quel ordre, donc par exemple, il s'agit également d'une commande valide:

$ Paste F4 F5 F6 | awk 'begin ofs = "," print $ 4, 8 $, $ 2, $ 3' rk, wm, mn, qw lp, mq, ix, ao wn, st, er, sy, sy 

De même un couper commande avec une combinaison de tr Peut être utilisé pour rejoindre ou séparer plusieurs colonnes Formulaire Fichier CSV séparé de virgules Fichier CSV ou STDIN:

$ Paste F4 F5 F6 | tr '\ t ",' | cut -d, -f2,3,4,8 mn, qw, rk, wm ix, ao, lp, mq er, sy, wn, st 

La dernière chose à mentionner est que pour enregistrer votre nouvelle sortie CSV dans un fichier, vous devez utiliser la redirection pour la rediriger vers un nouveau fichier. Par exemple, nous créons un nouveau fichier appelé mes données.CSV:

$ Paste F4 F5 F6 | tr '\ t ",' | cut -d, -f2,3,4,8> mydata.CSV 

Tutoriels Linux connexes:

  • Comment lire et créer des fichiers CSV à l'aide de Python
  • Comment se connecter à un serveur FTP à l'aide de Python
  • Masterring Bash Script Loops
  • Conseils de ligne de commande bash utiles et exemples de trucs - Partie 1
  • Introduction à Vagrant
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 3
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 2
  • Exemples de lignes de commande de commande de bash utile - Partie 4
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 5