Script Bash extraire donnée fichier texte puis mise a jours

Résolu/Fermé
altebelixe - 28 déc. 2021 à 01:14
 altebelixe - 28 déc. 2021 à 20:53
Bonjour,

J'ai un fichier texte contenant des adresse IP.

Exemple :

#192.168.0.1
#192.168.0.2
#192.168.0.3
#192.168.0.4
#192.168.0.5
#192.168.0.6
#192.168.0.7
#192.168.0.8
#192.168.0.9
#192.168.0.10
#192.168.0.11
#192.168.0.12
#192.168.0.13
#192.168.0.14
#192.168.0.15
#192.168.0.16
#192.168.0.18
#192.168.0.19
#192.168.0.20

Je voudrais un script qui extrait dans une variable $ip la première ligne de ce fichier texte #192.168.0.1. Puis qui modifie le fichier texte en enlevant le # devant l'IP. Et ainsi de suite pour les autres IP. De maniéré automatisée dans l'ordre.



Configuration: Windows / Chrome 96.0.4664.110
A voir également:

3 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
28 déc. 2021 à 16:43
si j'ai bien compris
à chaque exécution on enlève le #
$ while read ip; do ip=${ip//#/}; echo $ip; sed -i "s/^#$ip/$ip/" fichier ; done < <(grep -m 1 "^#" fichier)
192.168.0.1
$ cat fichier
192.168.0.1
#192.168.0.2
#192.168.0.3
#192.168.0.4
#192.168.0.5
#192.168.0.6
#192.168.0.7
#192.168.0.8
#192.168.0.9
192.168.0.10
192.168.0.11
192.168.0.12
192.168.0.13
192.168.0.14
192.168.0.15
192.168.0.16
192.168.0.18
192.168.0.19
#192.168.0.20
$ while read ip; do ip=${ip//#/}; echo $ip; sed -i "s/^#$ip/$ip/" fichier ; done < <(grep -m 1 "^#" fichier)
192.168.0.2
$ cat fichier
192.168.0.1
192.168.0.2
#192.168.0.3
#192.168.0.4
#192.168.0.5
#192.168.0.6
#192.168.0.7
#192.168.0.8
#192.168.0.9
192.168.0.10
192.168.0.11
192.168.0.12
192.168.0.13
192.168.0.14
192.168.0.15
192.168.0.16
192.168.0.18
192.168.0.19
192.168.0.20
.
1
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
28 déc. 2021 à 09:48
hello
et la variable $ip reste à la valeur de la ligne 1 ou prend-t-elle la valeur de la ligne suivante ?
0
La variable $ip prend la valeur de la ligne suivant. A chaque exécution du script lip qui a était utilisée dans la précédente exécution ne peut plus être utilisée car elle est réservé d'où le # que l'on enleve devant. Donc il faut réussir à faire comprendre au script de réservé des ip pour les affecté et de passer à la ligne suivant pour la variable $ip quand le # est présent devant la première ligne. Je galère un peut ????
0
MERCI MERCI MERCI MERCI :) :) :) :) Un grand merci !
0