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
A voir également:
- Bash: trouve et remplace une ligne dans un .sh
- Bingo bash free - Télécharger - Divers Jeux
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
- Bash permission non accordée - Forum Shell
- Bash retour à la ligne ✓ - 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.
$
;-))
"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"