j'en ai ras le bol de chercher pendant trois plombe ou se trouve le fichier que j'ai archivé sur je ne sais plus quel CD ou DVD alors je me suis codé un petit script qui recupere le contenu des cd et l'ecris dans un fichier sous la forme :
"num_ligne,path, nom_fichier".
Mon probleme c'est que cat agit d'une façon que je ne comprends pas. dans le code ci-dessous la premiere valeur $x me renvoi les 4 premieres lignes alors que je m'attends a avoir seulement la premiere. Est ce que j'ai fais une erreur ?
# recuperation de la prochaine position dans $fichier_contenu
set $(wc -l $fichier_contenu)
num=$1
num=$((num+1))
echo "Scan du cd en cours ...."
# recuperation et traitement du contenu du cd
isoinfo -l -i $cdrom > $iso_temp
grep -v ^d $iso_temp | grep ^. | sed 's/;1//' | sed 's/Directory listing of //'|sed 's/-.*.] //'|uniq > $fichier_temp
# insertion dans le fichier
for x in `cat $fichier_temp`
do
#pour debugage
echo $x
sleep 5
#fin debug
if [[ $x =~ / ]]
then
repertoire_courant=$x
else
insere_contenu $num,$repertoire_courant,$x
num=$((num+1))
fi
done
# eureka !
Posté par morphine . Évalué à 2.
[^] # Re: eureka !
Posté par Sylvain Sauvage . Évalué à 6.
while read x; do echo $x; ...; done < $fichier_temp
Et comme ça, tu peux même te passer du fichier temporaire :
... | uniq | while read x; do ... done
[^] # Re: eureka !
Posté par morphine . Évalué à 1.
....
....
trop fort ! Ca roule encore mieux.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.