> Tous les forumsAutres langages

 [sh] Traduction en expression reguliere: pb!
Statut du sujet : NON RESOLU Imprimer
 mechard45
  Posté le 09/08/2004 @ 16:12  
 Petit astucien

7 Messages
Bonjour, Je dispose d'un fichier de plusieurs lignes, constituées chacunes de nombres intercalés d'espace. Parmi ces nombres je souhaite rechercher dans le cadre d'une procédure awk des suites du type: 253 254, ou 251 254 ou 3 254 en gros toutes les suite du type '(tous les nombres/caracteres , qui sont différents de x ou y ou z) espace nombre_maitre' J'ai beaucoup de mal à traduire ceci en expression reguliere fonctionnant vraiment. /\<[^(252|25)][^0-9]253\>|\<[^(251|25)][^0-9]252\>|\<[^25][^0-9]251\>/ (j'ai depuis remplace[^0-9] par /s ...) Merci de m'aider, cela me bloque pour la suite de mon travail!
 Afficher le profil de mechard45Envoyer un message privé à mechard45
 
 
Publicité
 bizance  Posté le 19/08/2004 à 01:33  
Petit astucien

142 Messages
salut pourrais tu mettre un extrait de ton fichier a traiter ? et donner des exemples de résultats souhaité. Apres je t'aiderai [clindoeil]
Afficher le profil de bizanceEnvoyer un message privé à bizance
 Revenir en haut de la page
 mechard45  Posté le 20/08/2004 à 15:37  
Petit astucien

7 Messages
Bonjour, Merci pour ta proposition. Voici un extrait de mon jeu de donnees: [code] 4 0 0 41 50 999 999 41 50 42 50 999 5 0 0 42 72 999 999 42 62 42 72 40 6 0 0 72 999 999 999 44 50 42 72 70 7 0 0 999 72 41 41 40 40 999 37 20 8 0 0 999 72 41 40 70 72 42 27 40 9 0 0 50 41 72 40 70 41 50 41 40 10 0 0 61 41 72 72 70 44 50 41 40 [/code] Je cherche toutes les sequences qui ne respectent pas 251 252 253 254, ou 37 20 20 10, et apres certaines valeurs je ne dois pas en avoir d'autres (assez complexes comme conditions...) Voici le programme que j'ai actuellement et qui a l'air en fait de fonctionner maintenant: [code]if test $# -ne 4 # si le nombre de parametres n'est pas 3 then # affiche l'usage echo 'Usage: ./rech.sh dr_annee nb_colonne fich_out fich_in ' echo 'Ce programme cherche les sequences d erreur dans le fichier' echo 'Il renvoie un fichier avec la ligne, la colonne et l annee ou la sequence est erronee' exit 1 fi dr_annee=$1 nb_colonne=$2 fich_out=$3 shift shift shift awk '{ nb_colonne='$nb_colonne'; dr_annee='$dr_annee'; str=$0; value=0; while (pos = match(str,/(\<(10|11|15|20|25|252|253|254|26|27|30|31|32|33|34|35|36|37|38|40|41|42|44|45|46|47|50|51|61|62|63|64|70|71|72|73|74|75|81|82|83|90|91|999)[ ]252\>)|(\<(10|11|15|20|25|252|253|254|26|27|30|31|32|33|34|35|36|37|38|40|41|42|44|45|46|47|50|51|61|62|63|64|70|71|72|73|74|75|81|82|83|90|91|999)[ ](10|11|15|20|25|251|253|254|26|27|30|31|32|33|34|35|36|37|38|40|41|42|44|45|46|47|50|51|61|62|63|64|70|71|72|73|74|75|81|82|83|90|91|999)[ ]253\>)|(\<(10|11|15|20|25|252|253|254|26|27|30|31|32|33|34|35|36|37|38|40|41|42|44|45|46|47|50|51|61|62|63|64|70|71|72|73|74|75|81|82|83|90|91|999)[ ]252[ ]253\>)/)){ size = RSTART + RLENGTH R1=RSTART L1=RLENGTH #str_temp=substr(str,RSTART) #pos_temp=match(str_temp,/\<[0-9][0-9]*\>/) #R2=RSTART #L2=RLENGTH L2=L1 #print R1 #print L1 str=substr(str, R1 + L2) pos += value #print pos annee=dr_annee+1 i=length($0) #print i j=nb_colonne #print j while(i>=pos){ i += -length($j)-1 #print i annee=annee-1 #print annee j=j-1 } #print FNR " : " pos " : " annee " : " $O print FNR " : " $O value += R1 + L2 -1 } }' $@ >> $fich_out echo Taille: ; wc -l $fich_out;[/code] J'effectue un tri apres sur les lignes. Voila si vous avez qqch de plus court, ou que vous voyez des erreurs n'hésitez pas à me le dire! Meci, A+
Afficher le profil de mechard45Envoyer un message privé à mechard45
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Les sujets pertinents liés
Expression régulière
patch français pour bryce 5.5
programmer en assembleur
demande aide prog vb.net
cela existe traduction du français à l'anglais ??
Question très spécial
traduction d'un programme
traduction AbiWord_appel à l'aide
PB Traduire un logiciel
erreur d'exécution '3070'
traduction
 
Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !



 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page