Suppression lignes d'un fichier |commande bash si possible|

Suppression lignes d'un fichier |commande bash si possible| - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 27-05-2004 à 17:36:44    

Salut!
 
Je voudrais supprimer les lignes ne contenant pas d'adresses IP.
 
 
fichier.ori                        fichier.fin
 
127.0.0.0_dudu                     127.0.0.0_dudu
bob                                128.0.0.0_didi
128.0.0.0_didi
 
 
J'ai essayé avec sed  => sed "/[0-255-]/!d" fichier.ori > fichier.fin
 
ps: comment accéder directement aux messages (comme le mien) qui sont en attente de réponse
 
Merci

Reply

Marsh Posté le 27-05-2004 à 17:36:44   

Reply

Marsh Posté le 27-05-2004 à 17:39:49    

ps > drapeau bleu en haut à gauche de la liste des topics

Reply

Marsh Posté le 27-05-2004 à 17:40:38    

man sed
quand même ! et puis google pour trouver des exemple si tu comprends pas !

Reply

Marsh Posté le 28-05-2004 à 03:37:38    

grep -v est probablement mieux adapté que sed.

Reply

Marsh Posté le 28-05-2004 à 08:07:04    

c'est mon jour de bonté :p
 

Code :
  1. grep -E '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' fichiersource > fichierdest


 
bon, on pourrait faire plus sioux en verifiant que chaque groupement est dans l'intervalle 0-255 mais bon...
 
edit oups: oublié les balises "code"


Message édité par philou_a7 le 28-05-2004 à 08:07:52
Reply

Marsh Posté le 28-05-2004 à 08:30:28    

Merci à tous.
 
Merci pour ta bonté philou_a7

Reply

Marsh Posté le 28-05-2004 à 10:40:14    

vi -c "g/bob/d|:wq" foo.bar


TEST(root/root)[;-)]/exploit/unix/bin>cd /tmp
TEST(root/root)[;-)]/tmp>cat > foo.bar
ffffff
bobo
dddd
TEST(root/root)[;-)]/tmp>vi -c "g/bobo/d|:wq" foo.bar
"foo.bar" 3 lines, 17 characters "foo.bar" 2 lines, 12 characters  
TEST(root/root)[;-)]/tmp>cat foo.bar
ffffff
dddd
TEST(root/root)[;-)]/tmp>


 
VI RULES 4 EVER
 
ou pour tout virer toutes les lignes ne contenant pas d'adresse
vi -c "g!/1/d|:wq" foo.bar
elimine toute les ligne ou 1 n'est pas present si ta plage d'adresse est 127 ou 2 si ta plage d'adresse est comprise entre 200.0.0.0 et broadcast etc...
 
plus simple je vois pas...


Message édité par francoisp le 28-05-2004 à 10:54:52

---------------
If everything else failed then read the instructions
Reply

Marsh Posté le 03-06-2004 à 12:37:56    

Et pour effacer qu'un seul mot sur une ligne?
 
francoisp tes 2 commandes sont similaires, ca efface la ligne entiere :
vi -c "g!/1/d|:wq" foo.bar
vi -c "g/bobo/d|:wq" foo.bar

Reply

Marsh Posté le 03-06-2004 à 12:51:19    

pas de la meme façon et pas pour les meme causes voir mon texte


---------------
If everything else failed then read the instructions
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed