Bash: trouve et remplace une ligne dans un .sh
Fermé
marco
-
12 avril 2013 à 17:52
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 12 avril 2013 à 18:53
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 12 avril 2013 à 18:53
A voir également:
- Bash: trouve et remplace une ligne dans un .sh
- Bash permission non accordée - Forum Shell
- Bash écrire dans un fichier - Forum Shell
- Bingo bash free - Télécharger - Divers Jeux
- Bash path - Astuces et Solutions
- Bash: adduser : commande introuvable ✓ - Forum Debian
3 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
12 avril 2013 à 18:11
12 avril 2013 à 18:11
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
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
12 avril 2013 à 18:30
12 avril 2013 à 18:30
"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"
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
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
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
12 avril 2013 à 18:48
12 avril 2013 à 18:48
C'est fort possible ;-\
Déjà testes sur une copie de ton script non lancé et vois si les changements se font...
Déjà testes sur une copie de ton script non lancé et vois si les changements se font...
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
12 avril 2013 à 18:53
12 avril 2013 à 18:53
De rien, pareillement ;-)