Bonjour,
j'ai une liste d'une trentaine de variable à mettre en commentaire dans des scripts
ex de variables :
DATA_FILES
PROJ_TOP
EXP_LOG
ces variables sont utilisés dans les scripts
il faut mettre en commentaire que les lignes commençant par ces variables
ex de script
## -- Déclaration des variables d'environnement -- ##
ORG_NAME=toto
DATA_FILES=/proddata/toto/batch
PROJ_TOP=/prodapp/toto/batch/current/
JOB=`basename $0 .sh`
DATESTAMP=`date +%Y%m%d_%H%M%S`
EXP_LOG=/apps/exploit/tng/${ORG_NAME}/logs
## -- Déclaration du journal du script -- ##
exec >>$EXP_LOG/${DATESTAMP}_$JOB.$$.log
exec 2>>$EXP_LOG/${DATESTAMP}_$JOB.$$.log
echo "ETAPE 00 [$(date)] : Déclarations des variables ($$)"
IDF=P01000
CONCAT=concat_
PATTERN=SSDDREJ_*_007
EXTENSION=
REPRISE=N
CFTSRC="$(find /proddata/${ORG_NAME} -name "sas" -type d -prune)/out/flucro"
j'ai essayé cette commande mais il modifie la varaible dans tout le script
sed -i '/ORG_NAME/ s/^/# /' Nom_du_script
# sed et premiere occurence
Posté par David Marec . Évalué à 2.
Il existe un syntaxe de
GNU sed
pour s'arrêter à la première occurrence:[^] # Re: sed et premiere occurence
Posté par totof2000 . Évalué à 3.
Personnellement, dans la mesure du possible, si mon fichier n'est pas géré par un gestionnaire de versions, j'évite le sed -i. Je fais mon sed vers un autre fichier temporaire, je contrôle que j'ai bien ce que je veux, et ensuite je déplace le fichier vers l'ancien. Ca évite des erreurs du style expression régulière trop large qui remplace plus d'occurences que nécessaire.
# Commençant ou contenent ?
Posté par zipe31 . Évalué à 1.
Salut,
Toutes les lignes commençant par ces variables ou toutes les lignes contenant ces variables ?
Parce que ce n'est pas pareil ;-\
Cette syntaxe commente toutes les lignes commençant par les 3 variables sus-citées :
sed '/^\(DATA_FILES\|PROJ_TOP\|EXP_LOG\)/ s/^/# /' fich
Celle-là, toutes les lignes contenant les 3 variables :
sed '/DATA_FILES\|PROJ_TOP\|EXP_LOG/ s/^/# /' fich
# no upper case !
Posté par sputnick (site web personnel, Mastodon) . Évalué à 1.
Salut,
en shell il est déconseillé d'utiliser des variables en MAJUSCULES, car elle sont réservées au système.
Ça va fonctionner, jusqu'au jour où tu va t'arracher les cheveux par ce que tu aura pris une variable $SECONDS par exemple. (temps écoulé depuis l'ouverture du shell courant).
++sputnick;
On ne peut pas mettre d'array dans le string...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.