Bonjour,

j'ai fait un script qui permet de renommer les fichiers par leurs dates. Je ne comprend pas. La bouche se fait une première fois sur le premier fichier. Mais sur les fichiers suivants, elle ne s'exécute pas.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
#!/bin/bash
clear
#set -x
###
###TRAITEMENT DE LA DATE ===============================================
gcc="000000"
client="00000000"
fichier1="fichier1"
ddate="000000"
nom_fichier="nom_fichier"
cd /home/christophe/bl-clients/temp/
 
for fichier1 in $(ls *.pdf)
do
	###TRAITEMENT DE LA DATE ==========================================
	for col1 in 9 10 11 12 13
	do
		if (( $ddate == 000000 ))
		then
			ddate=$(pdfgrep --max-count 1 "Date" $fichier1 | awk -v col2=$col1 '{print $col2 }')
 
			len=`echo $ddate |awk '{print length}'`
 
			if [ $len -eq 7 ];
			then
			dateAA=$(echo $ddate | cut -b 6-7)
			dateMM=$(echo $ddate | cut -b 3-4)
			dateJJ=$(echo $ddate | cut -b 1)
			dateJJ="0$dateJJ"
			fi
 
			if [ $len -eq 8 ];
			then
			dateAA=$(echo $ddate | cut -b 7-8)
			dateMM=$(echo $ddate | cut -b 4-5)
			dateJJ=$(echo $ddate | cut -b 1-2)
			fi
 
			ddate=20$dateAA$dateMM$dateJJ
			if [[ "$ddate" =~ [0-9]{8} ]]
			then
				ddate=$ddate
			else
				ddate="000000"
			fi
		fi
	done 
	###FIN TRAITEMENT DE LA DATE ==========================================
 
	nom_fichier=BL_$ddate\_$gcc\_$client.pdf
 
	echo "fichier="$nom_fichier
	read -p "enter to continue"
 
done
j'ai mis le script. j'explique vaguement le fonctionnement . Il cherche une date sur une ligne. ensuite il l'a cute bref un joli moulin à café.

merci de votre aide.