Unix contrôle de chaînes de caractères en VI

Nic -  
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaite contrôler qu'une chaîne de caractère ne puisse contenir des caractères spéciaux

Voici la commande j'exécute :

awk 'BEGIN {print "Designation ou Code interne fournisseur avec des caractères spéciaux:\n" "MGBB;Code Article;Code Fournisseur;Designation Article METRO;Code Interne Fournisseur;"; FS=";"}
$6 !~ /^[A-Z0-9a-z \.,%-_\#\/]*$/ {print $21";"$2";"$1";"$6";"$8";"}
END { print "\n" }' ${Extract}

Je ne comprend pas pourquoi les chaines de caractères contenant "&" et "+" ne sont pas remonté par cette commande ?

Merci d'avance pour votre réponse


A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Merci de poster un exemple concret AVANT => APRÈS illustrant la situation ;-))
0
Nic
 
Voici trois exemples :
1) SAC&SKR&ABLC261033PLAT
2) SACS KRAF€T BLC26/10/33PLAT
3)50SAC POIG RAP 60X60 NO IR/OR

Ce que je veux c'est que les exemples "1" et "2" soit remonté par ma commande car ils contiennent des caractères que mon système ne sait pas gérer (pour l'exemple 1 "&" et pour l'exemple 2 "€").
or auhourd'hui seul l'exemple 2 est remonté par ma commande ....
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Et ce n'est pas plus simple de donner les caractères recherchés ?

$6 ~ /[&€]/ {print $21";"$2";"$1";"$6";"$8";"} 
0