Extraire les dates d'un fichier

Résolu
tricinti -  
 tricinti -
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
A voir également:

8 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,
var=$(echo fichier && grep -o '[0-9]\{2\}:[0-9]\{2\}:[0-9]\{4\}' fichier)

echo $var
;-))
0
tricinti
 
Merci pour vôtre réponse :)
le résultat de la commande m'affiche uniquement le nom du fichier et pas les dates :(
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
tricinti
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
tricinti
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Et comme ça (pour la partie après le "pipe" (|) :
|sed -e ':z' -e 'N;$!bz' -e 's/\n/ /g'
???
0
tricinti
 
la ça marche
Merci bcp :)
vous êtes fort
0