Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1147 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] [BASH] Récupérer une date dans une string

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] [BASH] Récupérer une date dans une string

n°1194190
frans0023
Posté le 21-01-2010 à 22:56:25  profilanswer
 

Bonsoir à tous,
 
Je viens voir les spécialistes pour une petite aide en bash.
 

#/bin/bash
 
string="Bla bla bla - bla bla bla - 21/01/10 - bla bla bla"
date= ???


 
Je veux récupérer la date. Je pensais à un awk ou sed avec une expression régulière mais je ne métrise malheuresement pas du tout ces commandes  :(   Il faut absolument que je m'y mette !!!
 
J'ai google un peu mais je ne trouve pas mon bonheur.
 
Merci d'avance pour votre aide


Message édité par frans0023 le 21-01-2010 à 23:17:21
mood
Publicité
Posté le 21-01-2010 à 22:56:25  profilanswer
 

n°1194191
ducon3d
Posté le 21-01-2010 à 22:59:02  profilanswer
 

tu as toujours le meme nombre de colonnes ?
 
colonne 1 - colonne 2 - ... - colonne date - colonne n
 
si c'est le cas cut suffit

n°1194192
sputnick
bip...bip...bip...bip...bi...b
Posté le 21-01-2010 à 22:59:20  profilanswer
 

Code :
  1. string="Bla bla bla - bla bla bla - 21/01/10 - bla bla bla"
  2. awk -F'-' '{print $3}' <<< "$string"

n°1194194
frans0023
Posté le 21-01-2010 à 23:02:03  profilanswer
 

Malheuresement je n'ai pas le même nombre de colonnes :) Ca serait trop simple :)
 
Ca peut etre "bla bla bla - bla bla bla bla - 23/12/10"
ou "bla bla bla bla - 23/12/10"
 
Je pensais à une expression régulière type **/**/**
 
En tous cas vous répondez vraiment très vite !!!!!! Merci  :love:


Message édité par frans0023 le 21-01-2010 à 23:02:29
n°1194195
sputnick
bip...bip...bip...bip...bi...b
Posté le 21-01-2010 à 23:04:35  profilanswer
 

Oui, merci ducon3d, on peux aussi se servir de cut :

Code :
  1. cut -d'-' -f3 <<< "$string"


ou encore :

Code :
  1. IFS='-' read a b date e <<< "$string"
  2. echo $date


Message édité par sputnick le 21-01-2010 à 23:14:03
n°1194198
sputnick
bip...bip...bip...bip...bi...b
Posté le 21-01-2010 à 23:10:23  profilanswer
 

Ha, ben suffit de demander ;)

Code :
  1. perl -lane 'for (@F) { print $_ if /\d+\/\d+\/\d+/;}' <<< "$string"


 
Si tu a un grep GNU récent :

Code :
  1. grep -oP '\d+/\d+/\d+' <<< "$string"

Message cité 2 fois
Message édité par sputnick le 21-01-2010 à 23:12:30
n°1194199
frans0023
Posté le 21-01-2010 à 23:12:23  profilanswer
 

sputnick a écrit :

Ha, ben suffit de demander ;)

Code :
  1. perl -lane 'for (@F) { print $_ if /\d+\/\d+\/\d+/;}' <<< "$string"



Ouah en perl !  :love:  Génial !!
 
Merci beaucoup, je vais essayer...

n°1194200
sputnick
bip...bip...bip...bip...bi...b
Posté le 21-01-2010 à 23:12:53  profilanswer
 

You're welKome ;)

n°1194201
frans0023
Posté le 21-01-2010 à 23:16:14  profilanswer
 

sputnick a écrit :

Ha, ben suffit de demander ;)

Code :
  1. perl -lane 'for (@F) { print $_ if /\d+\/\d+\/\d+/;}' <<< "$string"


Si tu a un grep GNU récent :

Code :
  1. grep -oP '\d+/\d+/\d+' <<< "$string"



Le perl, ça marche parfaitement !!!
 
grep: Support for the -P option is not compiled into this --disable-perl-regexp binary
Sur une debian 5.0.
 
Merci encore


Message édité par frans0023 le 21-01-2010 à 23:16:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] [BASH] Récupérer une date dans une string

 

Sujets relatifs
[résolu] renseignement sur virtualisation windows[Bash] Boucle While qui ne sort pas
[ RESOLU ] X hs sur archlinux[vim] commandes en tête de fichier texte [résolu]
phpBB, comment avoir le bouton d'édition des msg [Résolu][résolu] PFSense + Squid config des allowed_subnets ?
Liste des commandes BASH[RESOLU] renommer un fichier commencant par -T
Plus de sujets relatifs à : [RESOLU] [BASH] Récupérer une date dans une string


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR