Bash: trouve et remplace une ligne dans un .sh
marco
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir à tous,
J'ai un script qui tourne en while infini sur des serveurs distants, et un script2 qui re-initialise le script 1 régulièrement.
J'ai une modif a faire dans le script 1 et remplacer cette ligne
awk '/link down/ { print $1,$2,$3,$8,$12,$13,$14,$15 }' /var/log/syslog > /home/test/pblink.log
Par la même mais avec des $+chiffre différents. En fait, selon les machines, le matching se décale et du coup j'ai du garbage dans mon log.
L'exercice consiste à lancer un script qui trouve cette ligne et la remplace par une nouvelle ligne que je rentre.
Merci pour votre aide
Bon Weekend
J'ai un script qui tourne en while infini sur des serveurs distants, et un script2 qui re-initialise le script 1 régulièrement.
J'ai une modif a faire dans le script 1 et remplacer cette ligne
awk '/link down/ { print $1,$2,$3,$8,$12,$13,$14,$15 }' /var/log/syslog > /home/test/pblink.log
Par la même mais avec des $+chiffre différents. En fait, selon les machines, le matching se décale et du coup j'ai du garbage dans mon log.
L'exercice consiste à lancer un script qui trouve cette ligne et la remplace par une nouvelle ligne que je rentre.
Merci pour votre aide
Bon Weekend
3 réponses
-
Salut,
$ cat plop J'ai une modif a faire dans le script 1 et remplacer cette ligne awk '/link down/ { print $1,$2,$3,$8,$12,$13,$14,$15 }' /var/log/syslog > /home/test/pblink.log Par la même mais avec des $+chiffre différents. En fait, selon les machines, le matching se décale et du coup j'ai du garbage dans mon log. $ var='$1,$3,$9,$10,$18' $ sed -i.bak '\#^awk '\''/link down/#{s/$[^}]*/'"${var}"' /}' plop $ cat plop J'ai une modif a faire dans le script 1 et remplacer cette ligne awk '/link down/ { print $1,$3,$9,$10,$18 }' /var/log/syslog > /home/test/pblink.log Par la même mais avec des $+chiffre différents. En fait, selon les machines, le matching se décale et du coup j'ai du garbage dans mon log. $
;-))
-
Hello Zipe31,
Juste une petite question pour bien comprendre
Qu'est-ce que plop et -i.bak ?
Merci-
"plop" c'est le nom de MON fichier pour tester ;-)
Le "-i.bak" est spécial à sed.
- Le "-i" permet de modifier le fichier "en-place", ce qui permet de faire une modif directement dans un fichier sans avoir à passer par un fichier temporaire.
- Le ".bak" permet de faire une copie dudit fichier au cas ou. Il sera renommé en "nom_fichier.bak"
-
-
Merci pour cet eclaircissement, je comprends mieux
Par contre cela ne modifie pas mon fichier si je tape en ligne de commande les 2 commandes.
Quand je fais un diff entre le fichier.sh et le bak, je n'ai pas de changement.
C'est peut etre parce que le script est lancé.
Qu'en penses tu?
Merci