|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 12 ![]() |
Mon nouveau probleme me semble assez simple a resoudre et pourtant... je n'obtient pas le resultat que je desire.
Je possede 2 fichiers, l'un contenant des noms de domaines; l'autre comprenant aussi les noms de domaine mais ayant de nombreuses informations supplementaires (un peu trop ils sont composés de cette facon : Domaine.txt Domaine1 Domaine4 Domaine5 ... Setup.txt K SOFTWARE\InternetShopper\Mail\Domaine1.postfix1\Users: blablabla blablabla K SOFTWARE\InternetShopper\Mail\Domaine2.postfix2\Users: blablabla blablabla K SOFTWARE\InternetShopper\Mail\Domaine3.postfix3\Users: blablabla blablabla K SOFTWARE\InternetShopper\Mail\Domaine4.postfix4\Users: blablabla blablabla K SOFTWARE\InternetShopper\Mail\Domaine5.postfix5\Users: blablabla blablabla ... Et je desire donc tout simplement obtenir les ".postfix" correspondant aux noms des domaines contenu (et uniquement) dans Domaine.txt Result.txt Domaine1.postfix1 Domaine4.postfix4 Domaine5.postfix5 ... J'ai essayé plusieurs methodes : grep -f Domaine.txt Setup.txt awk -v FS='Mail\\' 'NR==FNR { Buff[$0] ; next } ($1 in Buff)' Domaine.txt Setup.txt etc Si quelqu'un a une methode ou une idée ? |
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 12 ![]() |
Bon finalement en cherchant du coté de join j'ai trouvé ce que je voulais.
donc un petit traitement de fichier en awk : awk -F "\\" ' /\\InternetShopper\\Mail\\/ {print $4 }' Setup.txt | awk -F ":" '{print $1}' | uniq | awk -F "." '{print $1 " " $2}' > buff et une commande join toute simple : join buff Domaine.txt > Result.txt et j'obtient le resultat desiré Je pense cependant qu'on peut allez plus loin dans la commande join ( ou gref -f ) pour eviter pas mal de traitement awk mais je n'ai pas (encore) trouvé comment. |
|
|
00
|
|
|
#3 | |
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Citation:
Valable en bash http://www.shellunix.com/regexp.html Domaine.cmd : Domaine1\.postfix[^\]* Domaine4\.postfix[^\]* Domaine5\.postfix[^\]*
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 12 ![]() |
Apres une toute petite modification cela fonctionne
pour generer le fichier Domaine.cmd : awk '{print $0 "\\.[^\\]*"}' Domaine.txt > Domaine.cmd cela genere le fichier Domaine.cmd : Domaine1\.[^\]* Domaine4\.[^\]* Domaine5\.[^\]* tout simplement parceque les postfixs etaient du type .fr .com etc... Merci donc |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com