A voir également:
- Chercher une chaine avec awk dans un fichier
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
- Ouvrir un fichier .bin - Guide
25 réponses
Pardon, la valeur de retour que je veux est le "n" fois:
# cat ccm.sh
#!/bin/sh
perl /home/lami20j/ccm.pl $1
si "n" = 0 alors
"traitement"
sinon
"traitement
fin si
# cat ccm.sh
#!/bin/sh
perl /home/lami20j/ccm.pl $1
si "n" = 0 alors
"traitement"
sinon
"traitement
fin si
Il y a aussi un problème au niveau de la recherche :(
si jamais l'utilisateur entre "ch" il faudrait que la valeur de retour de "n" soit 0 et non pas 5 :(
ch trouvé 5 fois
Il faut que le script charche la chaine entière comme je l'ai dis dans mes premiers mails.
si jamais l'utilisateur entre "ch" il faudrait que la valeur de retour de "n" soit 0 et non pas 5 :(
ch trouvé 5 fois
Il faut que le script charche la chaine entière comme je l'ai dis dans mes premiers mails.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 févr. 2008 à 16:53
13 févr. 2008 à 16:53
Voilà
root@debian:~# cat fic ch=a.chaine1,b.chaine2 ch1=a.chaine1,b.chaine2 ch2=c.chaine3 ch3=a.chaine4,b.chaine5,chiane6 etc... root@debian:~# cat ccm.pl #!/usr/bin/perl use strict;use warnings; my %h; my $ch = shift @ARGV; while(<>){ next unless /(\w*\.*$ch)/; $h{$1}++; } print values %h; __END__ root@debian:~# cat ccm.sh #!/bin/sh echo -e "Entrez la chaine a chercher : \c" read ch var=$(perl /home/lami20j/ccm.pl $ch $1) if [ -z $var ] then echo "NULL" else echo $var fi root@debian:~# sh ccm.sh fic Entrez la chaine a chercher : chaine1 2 root@debian:~# sh ccm.sh fic Entrez la chaine a chercher : divers NULL root@debian:~#
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 févr. 2008 à 16:57
13 févr. 2008 à 16:57
le script shell
#!/bin/sh echo -e "Entrez la chaine a chercher : \c" read ch var=$(perl /home/lami20j/ccm.pl $ch $1) if [ -z $var ] then echo "NULL" else echo $var file script perl
#!/usr/bin/perl use strict;use warnings; my %h; my $ch = shift @ARGV; while(<>){ next unless /(\w*\.$ch)\b/; $h{$1}++; } print values %h; __END__le résultat
root@debian:~# sh ccm.sh fic Entrez la chaine a chercher : chaine1 2 root@debian:~# sh ccm.sh fic Entrez la chaine a chercher : chaine10 NULL root@debian:~# sh ccm.sh fic Entrez la chaine a chercher : ch NULL root@debian:~#
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici le résultat d'execution que j'obtiens.
Entrez la chaine a chercher : chai
pp[8]: test: 0403-004 Spécifiez un paramètre avec cette commande.
[]>sh pp _tmp
Entrez la chaine a chercher : chaine3
1
[]>sh pp _tmp
Entrez la chaine a chercher : chiane9
pp[8]: test: 0403-004 Spécifiez un paramètre avec cette commande.
Merci d'avance pour ton lamij, je t'ai pas mal dérangé, j'en suis désolé mais je ne connais pas perl :(
Entrez la chaine a chercher : chai
pp[8]: test: 0403-004 Spécifiez un paramètre avec cette commande.
[]>sh pp _tmp
Entrez la chaine a chercher : chaine3
1
[]>sh pp _tmp
Entrez la chaine a chercher : chiane9
pp[8]: test: 0403-004 Spécifiez un paramètre avec cette commande.
Merci d'avance pour ton lamij, je t'ai pas mal dérangé, j'en suis désolé mais je ne connais pas perl :(