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 sagoum . Évalué à 2.
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 zanetti . É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 gUI (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 MicP . Évalué à 3. Dernière modification le 29 août 2019 à 20:14.
https://linuxfr.org/forums/linux-debian-ubuntu/posts/changement-de-date-1822d72d-77b2-4035-a2d5-79b6436865ed
# précision
Posté par zanetti . É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.
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.