Question Code shell Unix

baba915

Membre enregistré
3 Mai 2011
6
0
Je cherche à écrire un programme sur le shell de Linux qui compte le nombre d'identité entre mes 2 séquences:

ABCDEFGHIJKL
CDEABCIJKL => 70% d'identité.

Merci par avance.
 
Heuuu :heu:

C'est quoi la question en fait?

J'ai des doutes sur la réponse mais, rassures moi, t'as quand même un bout de début de code? Avec quel langage tu travailles? T'as essayé un peu? Ça donne quoi?

Cdt
 
Dernière édition:
Apparemment, il s'agit de shell donc quelque chose comme bash, ksh, zsh ou csh ?

En l'espèce, il faut sans doute utiliser les commandes d'UNIX (sort, uniq etc.) ou, pourquoi pas, faire un script en awk.

Ou alors passer aux langages de scripting un peu plus joli (Perl, Ruby, Python etc.)

On a le choix. Mais il faut commencer par poser le problème de manière précise : qu'est-ce qu'une séquence, comment va-t-on alimenter le script, quelle est la taille de la séquence, y a-t-il des doublons ... ?
 
En supposant que ton programme prend 2 paramètres (chaine1 et chaine2). Et en supposant que le %tage de concordance est basée sur la première chaine (si tous les caractères de la première chaine sont présent dans la seconde alors 100%, même si des caractères de la seconde sont en plus). Et en supposant qu'il n'y a pas de caractères en doublon dans la première chaine.

- Tu comptes le nombre de caractères de ta première chaine et établis que chaque caractère vaut x%
- Tu parcours ta première chaine et, pour chaque caractère, tu regarde si présent dans ta seconde (tu t'arrête dès que trouvé). Si trouvé alors tu ajoutes tes x% à ton compteur de %tage.
- Fin

Maintenant, je pars sur des hypothèses qui méritent d'être précisées. Le reste, on peut le faire en très basique avec 2 boucles for imbriquées dans un script shell.
 
Merci,

oui il s'agit de trouver une commande ou de faire un script en shell bash afin de comparer deux fichiers. L'idée est de déterminer le taux de ressemblance entre 2 lignes.

ABCDEFGHIJKL
....CDEABCIJKL (les . sont des trous) et on doit trouver 70% de ressemblance.

Du coup j'ai essayer avec diff et wc, mais impossible en script...

Merci pour votre aide.
 
j'ai vu des choses sur le net concernant awk...Cependant on a pas eu de cours d'ou la grosse difficulté.
Je pense qu'il y a plusieurs pistes... mais après je ne sais pas laquelle prendre
 
D'accord merci beaucoup en tout cas.

Tu penses qu'en trouvant sur internet comment faire un script je vais y arriver facilement ?
Selon toi quelle stratégie devrais-je adopter dans le script ?

Merci encore.
 
Je pensais appliquer les instructions if et while, mais ça ne marche pas il ne veut pas identifier les lettre...il me met +1 partout.

---------- Nouveau message ajouté à 10h36 ---------- Le message précédent a été envoyé à 10h23 ----------

Voici, mais je n'arrive pas à corriger mes erreurs:

i=CDEABCIJKL;
while ((i = c'est là ou j'ai l'erreur: je voudrais dire de A à L));
do;
echo i;
((+1...je ne sais pas si ca marche ça));
done

Merci encore