Comme je ne suis pas gourmand mais gourmet j'ai conservé mon regex et ai ajouté le substr suggéré par Yves.
Ce qui donne le script suivant:
<pre>
open (LISTE, "<liste.csv") or die "$!";
while (my $ligne = <LISTE>) {
next unless my ($prenom, $nom, $group) =
$ligne =~ /"([^"]+[^"])",\s*"([^"]+)",\s*"([^"]+)"/g;
$initial=substr($prenom,0,1);
print "$group$initial$nom\n";
}
</pre>
Qui me donne le résultat que je souhaitais
A1jdupont
A2gmartin
#!/bin/bash
#######################################################################
# Reduire un fichier donne en parametre a un taux donné en paramètre #
#
# Si nb param < 2 => sortie
if [ $# -lt 2 ]
then
echo "Usage : $0 fichier.jpg taux(%)"
exit 1
fi
# Si le nom passé en paramètre ne correspond pas à un fichier lisible => sortie
if [ ! -r $1 ] # -r : fichier existe et est accessible en lecture, rappel : ! : négation
then
echo "$1 n'existe pas ou n'est pas accessible en lecture";
exit 2;
fi
# Si le fichier ne possède pas l'extension jpg => sortie
echo $1 | grep -i "jpg$" > /dev/null
if [ $? != "0" ] # si la dernière commande s'est exécutée avec succès ($1 fini bien par jpg)
then
echo "Le fichier ne possède pas l'extension jpg";
exit 3;
fi
# Conversion
NOM=`basename $1`
DIR=`dirname $1`
NOM_SORTIE=$DIR/little_$NOM
convert -resize $2% $1 $NOM_SORTIE 2> /dev/null # si erreur, les messages d'erreur de la commande convert sont redirigés vers la corbeille
#si erreur sur la dernière commande (test de $?)
if [ $? != "0" ]
then
echo "Conversion echouée (mauvais format ?) ";
exit 4
else echo "Reduction de $1 à $2% vers le fichier $NOM_SORTIE effectuée"
fi
exit 0
$ while read line; do
> case $line in
> *.[Jj][Pp][Gg]|*.[Jj][Pp][Ee][Gg])
> echo "C'est un fichier JPEG (peut-être)"
> ;;
> *)
> echo "C'est pas du JPEG"
> ;;
> esac
> done
blah.png
C'est pas du JPEG
blah.jpeg
C'est un fichier JPEG (peut-être)
blah.JPG
C'est un fichier JPEG (peut-être)
blah.jpeg2000
C'est pas du JPEG
J' ai vu toutes vos solutions et vais les tester.
Bien sur je vous ferai part des résultats (bien que ces résultats dépendent avant tout de moi.
Et oui ! Si votre solution est bonne mais que je me plante ça ne fonctionnera pas.
Soyez indulgents car ce n'est pas évident de se lancer dans Linux et les scripts à mon age (56 ans).
En fait je me suis aperçu que ce problème était mineur puisque le shell me renvoi un message d'erreur même si ce n'est pas celui que je voudrais.
Par contre je me suis aussi aperçu que si je voulais modifier la taille de la vignette il fallait que je modifie mon script. Donc il me paraît intéressant de mettre le % en paramètre et non pas dans le script afin d'avoir le choix de la taille. J'avais pensé à un echo "usage : ..."
Avez vous une idée ?
Amicalement
[^] # Re: warning
Posté par nanard06 . En réponse au message message erreur concatenation. Évalué à 1.
# C'est Ok
Posté par nanard06 . En réponse au message récuperer l'initiale d'un prenom. Évalué à 1.
Ce qui donne le script suivant:
<pre>
open (LISTE, "<liste.csv") or die "$!";
while (my $ligne = <LISTE>) {
next unless my ($prenom, $nom, $group) =
$ligne =~ /"([^"]+[^"])",\s*"([^"]+)",\s*"([^"]+)"/g;
$initial=substr($prenom,0,1);
print "$group$initial$nom\n";
}
</pre>
Qui me donne le résultat que je souhaitais
A1jdupont
A2gmartin
Un grand merci à tous
# Résultat
Posté par nanard06 . En réponse au message Hachage d'un document .csv. Évalué à 3.
# Hachage d'un document .csv
Posté par nanard06 . En réponse au message Hachage d'un document .csv. Évalué à 2.
J'ai utilisé IFS et ça fonctionne super (je ne connaissais pas ce truc).
Problème résolu à 100%
# Modifier un fichier image
Posté par nanard06 . En réponse au message Modifications images. Évalué à 1.
# Modifications images
Posté par nanard06 . En réponse au message Modifications images. Évalué à 1.
# Modifications images
Posté par nanard06 . En réponse au message Modifications images. Évalué à 1.
J'ai vu ça dans des exemples mais je ne sais pas à quoi ça sert.
# Merci à tous. Vraiment super cette communauté Linux
Posté par nanard06 . En réponse au message Modifications images. Évalué à 2.