Bonjour,
J'ai ce jour un petit soucis dans un script que j'essaye de faire.
j'essaye actuellement d'insérer une ligne au milieu d'autres dans un fichier.
En effet, voici un exemple de mon fichier (j'ai mis des valeurs random à la place de mon fichier réel, c'est le même genre disons) :
fsd dsfsd fsdfsdfdsfds zerez 155.145.0.1
fsd random1 fsdfsdfdsfds zerez 155.145.0.2
fsd dsfsd fsdfsdfdsfds zerez 155.145.0.3
fsd randomX fsdfsdfdsfds zerez 155.145.0.9
fsd dssdfsd fsdfsdfdsfds zerez 155.145.0.27
fsd dsfsd fsdfsdfdsfds zerez 155.145.0.28
fsd dsfsd fsdfsdfdsfds zerez 155.145.0.29
fsd dsfsd fsdfsdfdsfds zerez 155.145.0.31
fsd dsfsd fsdfsdfdsfds zerez 155.145.0.72
mon objectif est le suivant :
pouvoir par exemple rajouter la ligne :
fsd dsfsd fsdfsdfdsfds zerez 155.145.0.14
au bon endroit (c'est à dire entre l'IP 9 et l'IP 27).
quelqu'un aurait-il un moyen de faire ça simplement ? (que ça soit avec sed, awk, ou peu importe l'outil, même si j'ai une préférence pour sed).
j'arriverais à la limite à scripter le système trouvant les lignes de départ et d'arrivée (celle avec 9 et 27), mais je ne vois pas trop comment faire en sorte de rajouter mon texte entre les deux.
dois-je fais un replace (substitute) de la ligne :
fsd dsfsd fsdfsdfdsfds zerez 155.145.0.9
et rajouter un retour chariot derrière, puis ma ligne avec l'IP 14 ?
si c'est le cas, quelqu'un pourrait-il me donner la commande sed en question pour ce type de truc ?
ex : sed -e 's/ligne_avec_ip9/$truc_pour_repeter_la_ligne\n$nouvelleligne/' mais j'ai fait pas mal de tests et ça ne fonctionne pas.
j'imagine aussi que l'intégralité est faisable plus simplement en awk, en faisant un tri sur la derniere colonne etc.. mais je connais mal awk
merci![]()
Partager