Recherche de site Web

5 façons de convertir un fichier CSV en fichier TSV sous Linux


Lorsqu’il s’agit de gérer et d’analyser des données, la conversion de fichiers d’un format à un autre est un besoin fréquent. Si vous travaillez avec des fichiers CSV (valeurs séparées par des virgules) sous Linux et que vous souhaitez les convertir en fichiers TSV (valeurs séparées par des tabulations), vous êtes au bon endroit car cet article vous aidera dans le processus de conversion requise.

Comprendre CSV et TSV

Les fichiers CSV ont été largement utilisés pour stocker des données structurées. Cependant, les fichiers TSV offrent certains avantages par rapport aux fichiers CSV.

Alors que les fichiers CSV séparent les valeurs par des virgules, les fichiers TSV utilisent des onglets, ce qui peut faciliter la gestion des données, en particulier lorsqu’il s’agit de virgules dans les données elles-mêmes.

Les fichiers TSV ont également tendance à être plus compatibles avec diverses applications et outils couramment utilisés pour le traitement et l’analyse des données.

Comment convertir CSV en TSV sous Linux

La conversion de fichiers CSV en fichiers TSV sous Linux peut être réalisée par diverses méthodes, qui sont les suivantes.

1. Utilisation de la commande awk

awk est un puissant outil de traitement de texte qui vous permet de manipuler et de transformer efficacement les données, qui est également utilisé pour convertir un fichier CSV en un fichier TSV comme indiqué.

$ awk -F ',' 'BEGIN {OFS="\t"} {$1=$1}1' tecmint.csv > tecmint.tsv
ls -l tecmint.tsv

Remplacez tecmint.csv par le nom de fichier réel de votre fichier CSV et tecmint.tsv par le nom de fichier souhaité pour le fichier TSV converti.

Décomposons la commande :

  • -F ', définit le séparateur de champ de saisie sous la forme d'une virgule, indiquant que le fichier d'entrée est au format CSV.
  • BEGIN {OFS="\t"} définit le séparateur de champ de sortie sous la forme d’un tabulation, en spécifiant que le fichier de sortie doit être au format TSV.
  • {$1=$1} force awk à reformater les champs d’entrée, en utilisant les séparateurs de champs spécifiés.
  • 1 est un modèle awk courant qui déclenche l’action par défaut, qui consiste à imprimer l’enregistrement modifié.

2. Utilisation de la commande sed

La commande sed est un autre outil puissant disponible sous Linux qui peut être utilisé pour convertir facilement des fichiers CSV en fichiers TSV.

Voici la commande sed que vous devez exécuter dans le terminal pour convertir un fichier CSV en fichier TSV.

$ sed 's/,/\t/g' tecmint.csv > tecmint.tsv
ls -l tecmint.tsv

Comprenons les composants de la commande :

  • s/,/\t/g est le modèle de substitution utilisé par sed, qui recherche les virgules (,) dans le fichier d’entrée et les remplace par des tabulations (\t).
  • input.csv doit être remplacé par le nom de fichier réel de votre fichier CSV.
  • output.tsv spécifie le nom de fichier souhaité pour le fichier TSV converti. Vous pouvez choisir le nom de votre choix.

3. Utilisation de la bibliothèque csvkit

La bibliothèque csvkit fournit un ensemble pratique et puissant d’outils en ligne de commande pour travailler avec des fichiers CSV sous Linux. Il offre un moyen facile de convertir des fichiers CSV au format TSV.

Cependant, vous devez d’abord installer csvkit sur votre système Linux à partir de la commande suivante :

$ sudo apt install csvkit         [On Debian, Ubuntu and Mint]
sudo yum install csvkit         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/csvkit  [On Gentoo Linux]
sudo apk add csvkit             [On Alpine Linux]
sudo pacman -S csvkit           [On Arch Linux]
sudo zypper install csvkit      [On OpenSUSE]    

Utilisez ensuite la commande suivante avec l’option -T, qui spécifie le délimiteur de sortie sous la forme d’une tabulation et convertit le fichier CSV au format TSV.

$ csvformat -T tecmint.csv > tecmint.tsv
ls -l tecmint.tsv

4. Utilisation du script Python

Pour convertir un fichier CSV en fichier TSV sous Linux, vous pouvez utiliser Python, un langage de programmation polyvalent couramment disponible dans les systèmes Linux. Suivez les étapes ci-dessous pour utiliser Python pour la conversion :

Créez un fichier de script Python dans le terminal en exécutant la commande suivante :

$ nano tecmint.py
OR
vi tecmint.py

Ajoutez ensuite le code suivant à l’intérieur du fichier de script.

import csv

csv_file = 'tecmint.csv'
tsv_file = 'tecmint.tsv'

with open(csv_file, 'r') as input_file, open(tsv_file, 'w') as output_file:
    csv_reader = csv.reader(input_file)
    tsv_writer = csv.writer(output_file, delimiter='\t')

    for row in csv_reader:
        tsv_writer.writerow(row)

Vous devez remplacer le nom du fichier CSV par votre propre nom de fichier enregistré dans votre système et le nom du fichier TSV selon votre choix.

Exécutez ensuite le fichier Python à l’aide de l’interpréteur python3 :

$ python3 tecmint.py

5. Utilisation du script Perl

Vous pouvez également utiliser le langage de programmation Perl sous Linux pour convertir un fichier CSV en fichier TSV. Pour ce faire, vous devez suivre les étapes ci-dessous :

Créez un fichier de script Perl à l’aide de la commande suivante :

$ nano tecmint.pl
OR
vi tecmint.pl

Ajoutez le code suivant à l’intérieur du fichier de script :

#!/usr/bin/perl

use strict;
use warnings;

my $csv_file = 'tecmint.csv';
my $tsv_file = 'tecmint.tsv';

open(my $input_fh, '<', $csv_file) or die "Failed to open $csv_file: $!";
open(my $output_fh, '>', $tsv_file) or die "Failed to create $tsv_file: $!";

while (my $line = <$input_fh>) {
chomp $line;
my @fields = split(',', $line);
my $tsv_line = join("\t", @fields);
print $output_fh $tsv_line . "\n";
}

close $input_fh;
close $output_fh;

Enregistrez ensuite le fichier à l’aide de CTRL+X, suivi de Y et du bouton d’entrée.

Rendez le script Perl exécutable et exécutez-le à l’aide des commandes suivantes :

$ chmod +x tecmint.pl
./tecmint.pl
ls -l tecmint.tsv

Conclusion

Lorsque vous travaillez avec des fichiers CSV sous Linux et que vous devez les convertir en fichiers TSV, plusieurs méthodes sont disponibles. L’article fournit des instructions étape par étape pour l’utilisation de commandes telles que awk et sed, l’utilisation de la bibliothèque csvkit, l’utilisation de Python et l’utilisation du langage de programmation Perl.

Chaque méthode offre ses propres avantages et permet de convertir facilement les fichiers CSV au format TSV. En suivant les instructions fournies, les utilisateurs peuvent effectuer efficacement la conversion requise et travailler avec des fichiers TSV dans leur système Linux.

Articles connexes: