Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

utilisation de grep et arrachage de cheveux

1 réponse
Avatar
Ketchupy
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

1 réponse

Avatar
Remi Moyen
On Thu, 31 Mar 2005, Ketchupy wrote:

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'"


Essaye tout simplement de mettre le motif grep entre guillemets :

grep "(Invalid|AntiP2P)" ipfilter.dat

De même, si dans un script ton motif est inclus dans un variable, genre
$MOTIF, essaye :

grep "$MOTIF" fichier

En général, moi, ça me règle tous mes problèmes.
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."