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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Extraction données via script

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extraction données via script

n°2226611
Profil sup​primé
Posté le 29-04-2014 à 17:50:45  answer
 

Bonjour,
 
Le but de mon script et de créer une liste des utilisateurs dont la dernière connexion remonte à au moins 3 mois. Comme je débute en script sous Unix j'y vais petit à petit  :D  
 

Code :
  1. #!/bin/sh
  2. currentDate=$(date +%s)
  3. cat users.txt|
  4. while read G;
  5.         date=$(cut -d"," -f5)
  6.         do echo "$date"
  7. done


 
Le problème que j'ai avec ce minuscule bout de code c'est que lorsque je l'exécute il me sort bien la date mais aussi une flopée de ligne vide, j'ai bien regardé mon fichier et je n'ai aucune ligne vide sur lesquelles le script pourrait boucler.
 
Une idée du problème ?
 
Merci,  :jap:

mood
Publicité
Posté le 29-04-2014 à 17:50:45  profilanswer
 

n°2226628
Soileh
Lurkeur professionnel
Posté le 29-04-2014 à 19:51:22  profilanswer
 

:hello: !
Es-tu sûr que ton début de code est fonctionnel ? :??: Quand je l'exécute, il tombe en boucle infini [:er dehy:3]
Pour commencer, j'aurais vu un truc plutôt dans ce genre :

Code :
  1. #!/bin/sh
  2. currentDate=$(date +%s)
  3. cat users.txt|while read G
  4. do
  5.   date=$(cut -d"," -f5)
  6.   echo "$date"
  7. done
 

Edit : Voici un code plus propre :

Code :
  1. #!/bin/sh
  2. currentDate=$(date +%s)
  3. cat users.txt|while read G
  4. do
  5.   date=$(echo $G|cut -d"," -f5)
  6.   echo "$date"
  7. done


Message édité par Soileh le 29-04-2014 à 19:58:39

---------------
And in the end, the love you take is equal to the love you make
n°2227893
Profil sup​primé
Posté le 13-05-2014 à 15:18:51  answer
 

Salut,
 
Effectivement il y avait un petit problème avec mon code, boucle infinie  :D  
 
Je l'ai modifié afin qu'il me convertisse ma date en timestamp (ce que j'ai réussi à faire)
 

Code :
  1. #!/bin/sh
  2. currentDate=$(date +%s)
  3. cat users.txt|while read G
  4. do
  5.   dateToConvert=$(echo $G|cut -d"," -f5)
  6.   timestampDate=$(date -d "$dateToConvert" "+%s" )
  7.   echo $timestampDate
  8. done


 
Mon fichier (users.txt) sur lequel je boucle se présente de cette façon
 

john.doe@jetapefort.com,/XX_Divisions/AAA,True,ADMIN,2013-04-05 14:44:01


 
L'idée serait de remplacer pour chaque ligne la date par son timestamp correspondant.  
Faut obligatoirement que je me tape des regex avec Sed pour remplacer ?
 
Merci  :jap:

n°2227899
Profil sup​primé
Posté le 13-05-2014 à 16:40:41  answer
 

Sed -i est mon ami  :D

n°2230458
Profil sup​primé
Posté le 11-06-2014 à 19:52:25  answer
 

Je reviens vers vous pour une petite question,
 

Code :
  1. cat test.txt |while read L;
  2. do
  3.         date=$(echo $L|cut -d"," -f8)
  4.         res=$(($currentDate - $date))
  5.         if["$res" -gt 0]
  6.         then
  7.                 echo "to suspend"
  8.         else
  9.                 echo "nothing"
  10.         fi
  11.         #sed -i 's/'$date'/'$res'/g' test.txt
  12. done


 
J'obtiens le message suivant : script.sh: 19: script.sh: Syntax error: "then" unexpected (expecting "done" )
 
La ligne 19 correspond à la ligne 7 ici.
 
Où est-ce que je me plante  :??:  

n°2230463
Soileh
Lurkeur professionnel
Posté le 11-06-2014 à 21:17:28  profilanswer
 


C'est peut-être à cause de l'absence des espaces dans le if :??: ; il faudrait modifier la ligne de la manière suivante :

Code :
  1. if [ "$res" -gt 0 ]


:jap:


Message édité par Soileh le 11-06-2014 à 21:21:04

---------------
And in the end, the love you take is equal to the love you make
n°2230529
Profil sup​primé
Posté le 12-06-2014 à 10:09:09  answer
 

ça me parait étrange mais je teste ça cet aprem  :jap:

n°2230583
Profil sup​primé
Posté le 12-06-2014 à 13:01:46  answer
 

Exact ça venait bien de ça, je pensais pas du tout que l'absence d'un espace pouvait faire planter le script.
 
Merci encore  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Extraction données via script

 

Sujets relatifs
presence raccourci bureau et le supprimer vbs scriptproblème pour inserer des données dans une table à partir d'un Jframe
correction de script batchModification des données via formulaire
Lancer des script .vbs depuis une page HTMLPassage de paramètre entre procédure stockée et script Php
SCRIPT, detecter lettre hdd externe en batchaide exploitation table de donnees
Script shell pour comparaison de 2 fichier et récupération du résultat 
Plus de sujets relatifs à : Extraction données via script


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