GNU/Linux >> Tutoriels Linux >  >> Linux

Extraction de colonnes d'un fichier texte avec différents délimiteurs sous Linux

Si la commande doit fonctionner avec des tabulations et des espaces comme délimiteur, j'utiliserais awk :

awk '{print $100,$101,$102,$103,$104,$105}' myfile > outfile

Tant que vous avez juste besoin de spécifier 5 champs, vous pouvez simplement les saisir, pour des plages plus longues, vous pouvez utiliser un for boucle :

awk '{for(i=100;i<=105;i++)print $i}' myfile > outfile

Si vous souhaitez utiliser cut , vous devez utiliser le -f choix :

cut -f100-105 myfile > outfile

Si le délimiteur de champ est différent de TAB vous devez le spécifier en utilisant -d :

cut -d' ' -f100-105 myfile > outfile

Consultez la page de manuel pour plus d'informations sur la commande de coupe.


Vous pouvez utiliser cut avec un délimiteur comme celui-ci :

avec espace delim :

cut -d " " -f1-100,1000-1005 infile.csv > outfile.csv

avec tab delim :

cut -d$'\t' -f1-100,1000-1005 infile.csv > outfile.csv

Je vous ai donné la version de cut dans laquelle on peut extraire une liste d'intervalles...

J'espère que cela vous aidera !


Linux
  1. Comment exécuter un programme avec un répertoire de travail différent de l'actuel, à partir du shell Linux ?

  2. Comment distinguer le binaire des fichiers texte sous Linux

  3. Supprimez les cinq premiers caractères de n'importe quelle ligne d'un fichier texte sous Linux avec sed

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

  5. Comment extraire du texte avec OCR à partir d'un PDF sous Linux ?

Commande Linux cut expliquée avec 6 exemples

Commande Linux WC avec exemples

Comment créer des répertoires à partir d'un fichier texte sous Linux

Comment afficher les données d'un fichier texte sous Linux

Comment extraire des adresses e-mail d'un fichier texte sous Linux

Copier le fichier de Linux vers le partage Windows avec C # (noyau .NET)