Rechercher : dans
Par :

Vérifier une chaine de caractère shell unix

Dernière réponse le 22 fév 2008 à 16:42:08 samsel, le 22 fév 2008 à 11:32:51 
 Signaler ce message aux modérateurs

Bonjour,
Comment savoir si une chaine de caractère contient des caractères comme ?!,\/"^$ sauf le point?
chaine.fee => chaine correcte
chaine,dd => chaine incorrecte
chaine!dd => chaine incorrecte
..

Merci

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « vérifier une chaine de caractère shell unix » dans :
Exercice assembleur x86 inversion de chaîne VoirIntroduction Notions abordées dans cet exercice Énoncé Rappel Indices Corrigé Explication Introduction Ce petit exercice d'assembleur vise les architectures x86 (Processeurs Intel et Amd 32 bits) et utilise la syntaxe de Nasm, un...
Télécharger CygWin VoirCygwin est un environnement UNIX pour Windows composé: d'un shell Unix d'une librairie dynamique (DLL) chargée de fournir une couche d'émulation Unix pour le système Windows d'un ensemble de librairies, sources et exécutables adaptés à Cygwin...
Fichiers et répertoires VoirLes fichiers sous DOS Sur un ordinateur les informations sont stockées dans des fichiers. Lorsqu'on exécute un programme, MS-DOS traite les informations situées dans le fichier et les transmet au système. Sous MS-DOS chaque fichier peut être aussi...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

Darkito, le 22 fév 2008 à 11:58:58

Bonjour,
c'est possible avec la commande grep et les expressions régulières.
En faisant un pipe sur le nombre de ligne, tu as 1 si c'est faux et 0 si c'est correct.


Darkito >echo 'tata.titi' | grep '[?'!'/\"^$]' | wc -l
0
Darkito >echo 'tata?titi' | grep '[?'!'/\"^$]' | wc -l
1
Darkito >echo 'tata'!'titi' | grep '[?'!'/\"^$]' | wc -l
1
Darkito >echo 'tata/titi' | grep '[?'!'/\"^$]' | wc -l
1
Darkito >echo 'tata\titi' | grep '[?'!'/\"^$]' | wc -l
1
Darkito >echo 'tata"titi' | grep '[?'!'/\"^$]' | wc -l
1
Darkito >echo 'tata^titi' | grep '[?'!'/\"^$]' | wc -l
1
Darkito >echo 'tata\$titi' | grep '[?'!'/\"^$]' | wc -l
1

On est obligé de mette '!' dans l'expression régulière car ! est un caractère réservé.
de même, dans l'appel de la variable pour le test, il faut mettre \$
Tøƒ
A quand la matière "Comment faire une recherche Google ?" obligatoire dès la 6ème ?

Répondre à Darkito

2

jipicy, le 22 fév 2008 à 13:49:18

Salut,

echo "$chaine" | grep '[?!/\"^$]' >/dev/null &&  echo 'incorrect' || echo "correct"
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

3

Darkito, le 22 fév 2008 à 13:52:06

Ça pose pas de problème avec le "!" ?
Chez moi ça met "event non found" Tøƒ
A quand la matière "Comment faire une recherche Google ?" obligatoire dès la 6ème ?

Répondre à Darkito

4

jipicy, le 22 fév 2008 à 15:58:44

Ben pas chez moi (mais à condition d'entourer l'expression par des quotes simples et non par des quotes doubles (guillemets) sinon ça foire) :

$ echo 'tat\ati.ti' | grep '[?!/\"^$]' >/dev/null &&  echo 'incorrect' || echo "correct"
incorrect
$ echo 'tatati.ti' | grep '[?!/\"^$]' >/dev/null &&  echo 'incorrect' || echo "correct"
correct
$

$ echo 'tatati.ti' | grep "[?!/\"^$]" >/dev/null &&  echo 'incorrect' || echo "correct"
-bash: !/\"^$]": event not found
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

5

lami20j, le 22 fév 2008 à 16:14:30

Salut,

pourquoi pas une classe de caractères complementée?

lami20j@debserv:~$ echo 'tatatiti' | grep -E '[^a-zA-Z0-9_]' && echo incorrect || echo correct                                                               correct
lami20j@debserv:~$ echo 'tata?titi' | grep -E '[^a-zA-Z0-9_]' && echo incorrect || echo correct
tata?titi
incorrect
lami20j@debserv:~$


lami20j

Répondre à lami20j

6

 samsel, le 22 fév 2008 à 16:42:08

Merci les amis :) ça marceh trés bien chez moi ;)

Répondre à samsel