bonjour,
j'ai un fichier qui contient :
FAX-Nr: 87654321 FAX-Name: totozzxx C'est un essai
ou
A l'attention de : FAX-Name :totozzxx sdf --- C'est un essai FAX-Nr :
12345-6789 --- zdergf
les 2 zones suivantes peuvent se trouver n'importe où dans le texte
FAX-Nr: dddddddd --- (d=chiffre)
FAX-Name: xxxxxxxxx ---
J'ai le script suivant (on le trouve sur le net sous les noms faxfilter,
smbfax, sambafax) :
FAXNUM=`ps2ascii ${FAXFILE} | awk '{ IGNORECASE=1 } /FAX-Nr ?: ?[0-9-]*/ \
{ $0=$0 "xxx"; \
gsub(/-/,""); \
anfang=match($0,/ ?: ?/); \
anfang=anfang+match(substr($0,anfang),/[0-9]/)-1; \
ende=match(substr($0,anfang),/[^0-9]/)-1; \
printf ("%s",substr($0,anfang,ende)) \
}' `
J'ai modifié un peu la chose... y-avait des petits bugs, genre j'avais mis
des lettres au lieu des chiffres pour FAX-Nr et je voulais pouvoir récupérer
des zones alphanum...
Pour les zones numériques :
FAXNUM=`ps2ascii ${FAXFILE} | awk '{ IGNORECASE=1 } /FAX-Nr ?[ ] ?:
?[0-9-]*/ \
{ $0=$0 "xxx"; \
anfang=match($0,/FAX-Nr ?[ ] ?: ?/); \
anfang=substr($0,anfang); \
gsub(/^FAX-Nr[ ]*[:][ ]*/,"",anfang); \
gsub(/[ ]*---.*/,"",anfang); \
gsub(/[^0-9]/,"",anfang); \
printf ("%s", anfang) \
}' `
Pour les zones alphanum :
FAXNAME=`ps2ascii ${FAXFILE} | awk '{ IGNORECASE=1 } /FAX-Name ?[ ] ?:
?[0-9a-zA-Z]*/ \
{ $0=$0 "xxx"; \
anfang=match($0,/FAX-Name ?[ ] ?: ?/); \
anfang=substr($0,anfang); \
gsub(/^FAX-Name[ ]*[:][ ]*/,"",anfang); \
gsub(/[ ]*---.*/,"",anfang); \
printf ("%s", anfang) \
}' `
J'aimerai avoir votre avis sur ce code...et vos conseils! ;o)
anne