Comment afficher des chaines de caractère qui se suivent

jakol -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je dispose d'un ficher extraction.csv :

0670385S Ecole élémentaire Ecole primaire Home Strasbourg
0670388Z Ecole élémentaire Ecole primaire Work Strasbourg

Je souhaiterais extraire les données suivantes:

0670385S Ecole primaire Home Strasbourg
0670388Z Ecole primaire Work Strasbourg

j'ai essayé de faire un

awk '{print $1$4$5$6$7}' fichier.csv

mais le résultat n'est pas probant. Les caractères sont attachés

0670385SEcoleprimaireHomeStrasbourg
0670388ZEcoleprimaireWorkStrasbourg

Je regarderai les liens proposés par le modérateur...Je sais qu'il existe sed et grep mais je ne maîtrise pas ces commandes.

J'espère avoir un retour de votre part. Merci
jakol

Configuration: Windows / Chrome 75.0.3770.100

3 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Bonjour,

    Le plus simple est de rajouter des virgules, ainsi
    awk
    séparera les champs par des espaces.

    awk '{print $1, $4, $5, $6, $7}' fichier.csv


    Autre solution, si tes champs sont séparés par des espaces simples, tu peux utiliser
    cut
    :

    cut -d" " -f1,4,5,6,7 fichier.csv


    Bonne chance
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    par défaut, virgule == 1 espace
    awk '{print $1, $4, $5, $6, $7}' fichier.csv 
    0
  3. lEprofSonDkon Messages postés 227 Statut Membre 13
     
    salut,

    en bash :
    while read -ra ar; do echo "${ar[0]} ${ar[@]: -4}"; done <fichier.txt
    0670385S Ecole primaire Home Strasbourg
    0670388Z Ecole primaire Work Strasbourg
    je mets
    .txt
    , parce que CSV = Comma-Separated Values
    0
    1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       
      Même si tu as raison, on désigne souvent un fichier texte structuré en ligne et en colonnes ainsi, bien qu'il n'y ait pas forcément de virgules. On devrait en toute rigueur parler de fichiers fichiers DSV.

      Mais c'est un abus de langage tellement répendu que le parseur dédié en python s'appelle bien csv, bien que le délimiteur est paramétrable...
      https://docs.python.org/3/library/csv.html

      Je pense que la cause de cet abus de langage est que l'extension
      .csv
      est souvent associées au niveau du système à un tableur contrairement aux extensions
      .tsv
      ou
      .dsv
      .

      Merci toutefois pour cette remarque.
      0