Rechercher : dans
Par :

[shell] comparaison chaine de caractère

Dernière réponse le 18 oct 2008 à 11:07:09 yakuzayang, le 17 oct 2008 à 23:56:02 
 Signaler ce message aux modérateurs

Bonjour,
j'ai un projet a faire en shell; la création d'une base de donnée.
La je dois créer la fonction qui prend en ligne de commande un truc du style:
delete from table2 where col2 > val2

c'est a dire qui supprime de la table2 toute les lignes ou dans la colonne2 la valeur est > val2

le problème c'est pour les chaîne de caractères. comment je peux comparer 2 chaînes de caractères avec un > et un < ? dans un sens sa a un "sens" au niveau de l'ordre alphabétique
visiblement le shell ne fait pas la comparaison.

j'ai essayer sur un script d'essai de faire
c1="a" c2="b"
if [ "$c1" < "$c2" ] ; then
echo "1"
fi

if [ "$c1" > "$c2" ] ; then
echo "2"
fi

et sa me renvoi 1 et 2 Lol?
comment faire?

Configuration: Linux
Firefox 3.0.3

Meilleures réponses pour « [shell] comparaison chaine de caractère » dans :
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
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...
Langage C - Les chaînes de caractères 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 chaîne...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...

1

 jipicy, le 18 oct 2008 à 11:07:09

Salut,

Effectivement, en shell on ne peut comparer 2 chaînes que sur leur longueur (= ou != de 0) ou sur leur contenu (chaineA = ou != de chaineB), mais pas sur leur ordre de grandeur (alphabétiquement parlant tout au moins, numériquement parlant c'est faisable).

Pour ce que tu veux faire, il te faudrait extraire toutes les valeurs contenues dans le champ 2, y inclure si besoin ta valeur de référence, les trier (sort), éliminer les redondances (uniq), et ensuite à l'aide d'une boucle, éliminer tout ce qui est avant (ou après) ta valeur de référence...
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy