|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() richard dean andersonIngénieur systèmes et réseaux Inscription : août 2011 Messages : 28 ![]() |
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 |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Ces deux autres solutions marchent aussi :
Code :
Code :
sed 's/\.9$/&\nfsd dsfsd fsdfsdfdsfds zerez 155.145.0.14/' plop
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() richard dean andersonIngénieur systèmes et réseaux Inscription : août 2011 Messages : 28 ![]() |
merci bcp je vais tester un truc du genre.
n'y-a-t'il pas moyen de le faire sur une ligne ? Zip31 : oui la première fonctionne aussi, j'ai bien compris l'histoire du i/a pour avant/après en revanche le \n ne fonctionne pas dans ma version de sed (solaris 10) j'ai un peu tout testé avec, et il me rajoute un n à la place du retour chariot |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|||
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() richard dean andersonIngénieur systèmes et réseaux Inscription : août 2011 Messages : 28 ![]() |
merci bcp c sympa
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com