Extraire les dates d'un fichier

Résolu
Bonjour,

de l'aide SVP

je souhaite lire les dates ecrites dans un fichier, les dates sont ecrites sous la forme 01:01:2009
Je veux les afficher sur une seule ligne
j'ai beau essayé avec grep ...

La structure du fichier est comme suit

xxxxxxxxxxxxxxxxxxxxxxxxxxxx 01:01:2009 xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 01:01:2009
.
.
.
en fait le resultat que je veux c'est comme ça: "NOM_Fichier Date_1 Date_2"

merci bcp pour votre aide
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. Modérateur
    Salut,
    var=$(echo fichier && grep -o '[0-9]\{2\}:[0-9]\{2\}:[0-9]\{4\}' fichier)
    
    echo $var
    ;-))
    0
    1. Merci pour vôtre réponse :)
      le résultat de la commande m'affiche uniquement le nom du fichier et pas les dates :(
      0
      1. Modérateur
        Quel système ?
        Quel shell ?
        Quelle version du shell ?
        Quelle version de "grep" ?
        jp@MDK:~/tmpfs ssh$ cat fichier
        xxxxxxxxxxxxxxxxxxxxxxxxxxxx 01:01:2009 xxxxxxxxxxxxxxxxxxxxxxx
        xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 01:01:2009
        
        jp@MDK:~/tmpfs ssh$ var=$(echo fichier && grep -o '[0-9]\{2\}:[0-9]\{2\}:[0-9]\{4\}' fichier)
        
        jp@MDK:~/tmpfs ssh$ echo $var
        fichier 01:01:2009 01:01:2009
        
        jp@MDK:~/tmpfs ssh$
        ;-))
        0
        1. euuuh, c'est un solaris et je ne sais pas plus
          je suis vraiment novice :-/

          ça m'a donné grep: illegal option -- o
          Usage: grep -hblcnsviw pattern file . . .
          0
          1. Modérateur
            Est-ce qu'avec "sed" ça le fait :
            sed -ne 's/.*\([0-9]\{2\}:[0-9]\{2\}:[0-9]\{4\}\).*/\1/p' fichier | sed -e ':z;N;$!bz;s/\n/ /g'
            ???
            0
            1. non ça donne un autre message: Label too long: :z;N;$!bz;s/\n/ /g :(
              j'ai pu afficher la date existante dans la première ligne grace à cat fichier |grep Debut | awk '{print $6}'
              parceque la date est dans la sixème colonne dans ce fichier la
              mais c'est pas le cas dans les autres, donc si je veux mettre une boucle qui va lire l'ensemble des fichier ça marchera pas
              0
              1. Modérateur
                Et comme ça (pour la partie après le "pipe" (|) :
                |sed -e ':z' -e 'N;$!bz' -e 's/\n/ /g'
                ???
                0
                1. la ça marche
                  Merci bcp :)
                  vous êtes fort
                  0

                  Discussions similaires

                  question pix mot caché

                  7 réponses