Bash: trouve et remplace une ligne dans un .sh
marco
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
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
A voir également:
- Bash: trouve et remplace une ligne dans un .sh
- Bingo bash free - Télécharger - Divers Jeux
- Bash addition - Forum Programmation
- Bash pause ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash list ✓ - Forum Shell
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
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"
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"