Bonjour,
après m'être battu pendant pret d'une heure et m'être enerver quelques
fois, je viens quérir de l'aide...
Déjà, e que je souhaite faire : parser un fichier ipfilter.dat (qu'on
peut avoir avec les emule-like) de la forme :
#
#
#Ipfilter v72
[...]
24.149.64.0-24.149.127.255,000,Invalid
24.149.192.0-24.149.255.255,000,Invalid
24.170.208.0-24.170.223.255,000,Invalid
24.170.240.0-24.170.255.255,000,Invalid
24.171.160.0-24.171.255.255,000,Invalid
[...]
64.86.0.0-64.86.15.255,000,AntiP2P
64.89.32.0-64.89.47.255,000,AntiP2P
64.92.150.0-64.92.150.255,000,AntiP2P
64.209.128.0-64.209.143.255,000,AntiP2P
64.209.193.0-64.209.193.255,000,AntiP2P
[...]
019.253.160.064-019.253.160.127,000,BL(25/01/05)Munhwa Broadcasting Corp
020.064.136.128-020.064.136.255,000,BL(16/11/04)KONGJUPOLICE
020.065.237.000-020.065.237.127,000,BL(16/11/04)Gyeongbuk Provicial
020.156.000.000-020.156.095.255,000,BL(16/11/04)Panasonic Network
021.117.039.160-021.117.039.167,000,BL(16/11/04)Warp Entertainment
021.129.000.000-021.129.255.255,000,BL(16/11/04)TIANJIN BROADCAST & TV
[...]
et sortir de tout ça un fichier/flux avec juste les range d'IP
IP_debut-IP_fin utilisable par iptables..
Sachant qu'une bonne partie du fichier utilise des IP du style
035.028.012.08 illisible par iptables, j'aimerais tout d'abord "couper"
le fichier en 2.
Une première partie avec toutes les lignes qui contiennent Invalid ou
AntiP2P, et une seconde avec le reste..
Personnellement ça me paraissait pas trop compliqué.. mais les commandes
suivantes :
# grep (Invalid|AntiP2P) ipfilter.dat
# egrep (Invalid|AntiP2P) ipfilter.dat
me renvoient "bash: syntax error near unexpected token `Invalid'"
et si bien sur je mets ces commande dans une ligne du style
#cat ipfilter | grep ^[^#] | grep...
bash apprecie moyennement le "|" qui est censé etre un OU, et si je le
fais précédé par un \ ça ne change rien...
Si quelqu'un pourrait m'aider la dessus...
De même, la recherche "grep Invalid$ ipfilter.dat" ne me renvoit rien..
(mais si je copie quelques dans un autre fichier, la commande fonctionne...)
Bref je suis assez perdu la dedans, donc si quelqu'un pouvait m'eclairer
sur l'utilisation "légèrement avancée" de grep et de ses expressions
regulières, je lui serais reconnaissant..
MERCI