Forum Linux.débutant date

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
29
août
2019

Bonjour la famille j'ai un petit problème. J'aimerais que vous me veniez en aide

Fichier.txt à modifier

---Table call 
CREATE TABLE EPPIX.call_hyb**20180301**_bkp**20180301**
AS
SELECT * FROM EPPIX.call_hyb**20180301**; 

---Table bill 
CREATE  TABLE EPPIX.bill_hyb**20180301**_bkp**20180301**
AS
SELECT * FROM EPPIX.bill_hyb**20180301**;

---Table GPRS
CREATE TABLE EPPIX.gprs_hyb**20180301**_bkp**20180301**
AS
SELECT * FROM EPPIX.gprs_hyb**20180301**;


---Table CYCLE

CREATE TABLE EPPIX.cycle**20180301**_bkp**20180301**
AS
SELECT * FROM EPPIX.cycle;


--vider les tables bill , call et GPRS 

TRUNCATE TABLE EPPIX.bill_hyb**20180301**;
TRUNCATE TABLE EPPIX.gprs_hyb**20180301**;
TRUNCATE TABLE EPPIX.call_hyb**20180301**;

---------------------------------------Mise à jour date -----
UPDATE eppix.VSM_SERVICE_MSISDN
SET vsm_billed_upto = TO_DATE(**'2018-02-28','YYYY-MM-DD'**)-- Update here last day of month
WHERE vsm_subscriber_id IN(
                        Select distinct sbd_subscriber_id from eppix.sbd_sub_dets ,vas_active_service vas
                         Where vas_subscriber_id =sbd_subscriber_id
                         and sbd_bill_cycle='HYB'
                         and vas_sub_charge1 is not null
                         and vas_sub_charge1 != ' ');      
commit;

----------------------------------------Mise à jour service SPD
update vas_active_service set vas_sub_charge1=vas_service_code where  vas_service_code like 'SPD%' and  vas_service_code!=vas_sub_charge1  
commit;

et voici mon script qui me permet de le modifier

#!/bin/sh
datejour=`YYYYMM01`
datemoisprecedent=`YYYY-MM-JJ`
Datedudernierjourdumoisprecedent =$(date --date "today - $(date +%d) days" +%Y-%m-%d) 
Datedupremierjourdumoisencours =$(date +%Y%m01)
sed -i 's/'$datejour'/'$Datedupremierjourdumoisencours'/g' hyb.txt;
sed -i 's/'$datemoisprecedent'/'$Datedudernierjourdumoisprecedent'/g' hyb.txt;

J'aimerai changer les dates de mon fichier.txt sans avoir à figer mes dates. Lorsque j'exécute mon script il m'affcihe des erreurs de ce genre :

  • ./maj.sh:line 3: YYYYMM01 : commande introuvable
  • ./maj.sh: line 4: YYYY-MM-JJ : commande introuvable sed: -e expression n°1, caratère 0: pas d'expression régulière précédente

Merci d'avance.

Cordialement;

  • # problèmes de syntaxe

    Posté par  . Évalué à 2.

     Datedudernierjourdumoisprecedent =(date --date "today -(date +%d) days" +%Y-%m-%d) 
    

    il faut supprimer l'espace devant le signe égal
    il faut mettre des dollars devant les parenthèses.

    • [^] # Re: problèmes de syntaxe

      Posté par  . Évalué à 1.

      Merci sagoum pour votre aide mais là n'est pas le problème. le problème se situe au niveau de mes variables datejour=YYYMM01 et datemoisprecedent=YYYY-MM-DD
      lorsque j'exécute mon script il ne reconnait pas mes variables

      • [^] # Re: problèmes de syntaxe

        Posté par  (Mastodon) . Évalué à 3. Dernière modification le 29 août 2019 à 15:16.

        Tu as mis des backquote "`" au lieu de guillemets ou de quote "normale".

        La backquote demande au shell d'abord d'exécuter puis de récupérer le résutalt. Il tente donc d'exécuter "YYYMM01"

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

  • # Voir aussi…

    Posté par  . Évalué à 3. Dernière modification le 29 août 2019 à 20:14.

  • # précision

    Posté par  . Évalué à 1. Dernière modification le 04 septembre 2019 à 12:14.

    Bonjour à tous. Ce n'est pas que mon script ne passe pas à merveille, au fait c'est qu'avant, lorsque j'exécutais mon script sans donner de variables à 20180301 et 2018-02-28 comme cela dans mon script ci dessous cela marchait à merveille.

    #!/bin/sh
    
    Datedudernierjourdumoisprecedent =$(date --date "today - $(date +%d) days" +%Y-%m-%d) 
    Datedupremierjourdumoisencours =$(date +%Y%m01)
    sed -i 's/'20180301'/'$Datedupremierjourdumoisencours'/g' hyb.txt;
    sed -i 's/'$2018-02-28'/'$Datedudernierjourdumoisprecedent'/g' hyb.txt;

    Je ne veux plus plaquer mes dates(20180301 et 2018-02-28) comme je le faisais dans mon script au dessus, mais je veux les affecter à des variables.
    Là lorsque les dates changeront, je n'aurai plus à mettre encore les dates qui ont changé dans mon script mais les variables qui les contiennent.
    Merci d'avance à vous.

    Cordialement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.