GNU/Linux >> Tutoriels Linux >  >> Linux

moyen le plus rapide de convertir un fichier délimité par des tabulations en csv sous Linux

Si vous n'avez qu'à traduire tous les caractères de tabulation en caractères virgule, tr est probablement la voie à suivre.

L'espace vide ici est une tabulation littérale :

$ echo "hello   world" | tr "\\t" ","
hello,world

Bien sûr, si vous avez des onglets intégrés à l'intérieur des littéraux de chaîne dans le fichier, cela les traduira également de manière incorrecte ; mais les tabulations littérales intégrées seraient assez rares.


perl -lpe 's/"/""/g; s/^|$/"/g; s/\t/","/g' < input.tab > output.csv

Perl est généralement plus rapide dans ce genre de choses que sed, awk et Python.


Si vous vous inquiétez des virgules intégrées, vous devrez utiliser une méthode légèrement plus intelligente. Voici un script Python qui prend les lignes TSV de stdin et écrit les lignes CSV dans stdout :

import sys
import csv

tabin = csv.reader(sys.stdin, dialect=csv.excel_tab)
commaout = csv.writer(sys.stdout, dialect=csv.excel)
for row in tabin:
  commaout.writerow(row)

Exécutez-le à partir d'un shell comme suit :

python script.py < input.tsv > output.csv

  • Si vous souhaitez convertir l'intégralité du fichier tsv en un fichier csv :

    $ cat data.tsv | tr "\\t" "," > data.csv
    
  • Si vous souhaitez omettre certains champs :

    $ cat data.tsv | cut -f1,2,3 | tr "\\t" "," > data.csv
    

    La commande ci-dessus convertira le fichier data.tsv en fichier data.csv contenant uniquement les trois premiers champs.


Linux
  1. Comment convertir des fichiers en codage UTF-8 sous Linux

  2. Linux - Tout est un fichier ?

  3. csplit :une meilleure façon de diviser un fichier sous Linux en fonction de son contenu

  4. Lecture d'un fichier CSV avec des requêtes SQL à partir du shell Linux

  5. Comment convertir une image disque Linux en un fichier sparse ?

Commande tactile Linux

Commande Cat sous Linux

Comment convertir une image de caméra Raw en JPEG sous Linux

Comment convertir xlsx au format CSV sous Linux

Le moyen le plus rapide de compter les fichiers de manière récursive sous Linux

Comment convertir un fichier .pem en un fichier .ppk sous Windows et Linux