Bonjour à tous,

J'aimerais faire un petit shell qui me permet de compter le nombre de ligne vide à la fin d'un fichier.
J'ai écris quelque chose qui ne marche pas parfaitement. Le but est également de trouver le format des retours charriots (unix ou windows).
J'ai 3 fichiers, sans.txt, une.txt, deux.txt avec 0, 1 et 2 lignes vides à la fin, de format windows.

sans.txt
Nom : mini_382603Capture1.png
Affichages : 1831
Taille : 8,0 Ko

une.txt
Nom : mini_490429Capture2.png
Affichages : 1843
Taille : 6,8 Ko

deux.txt
Nom : mini_357357Capture3.png
Affichages : 1849
Taille : 6,1 Ko

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
for FILE in `find "." -type f`
do
	NAME=`basename "$FILE"`
	if [ $(tail -n 2 "$FILE" | od -c | grep -F "\r" | wc -l) -eq 1 ]
	then
		CHARRIOT="WINDOWS"
		LIGNE=$(tail -n 2 "$FILE" | od -c | sed "s/ //g" | sed "s/\\\r\\\n/#/g" | grep -o "#" | wc -l)
	else
		CHARRIOT="UNIX"
		LIGNE=$(tail -n 2 "$FILE" | od -c | sed "s/ //g" | sed "s/\\\n/#/g" | grep -o "#" | wc -l)
	fi
	echo "$NAME : $CHARRIOT, $LIGNE ligne vide a la fin"
done
Voici le résultat erroné :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
deux.txt : WINDOWS, 2 ligne vide a la fin
une.txt : WINDOWS, 2 ligne vide a la fin
sans.txt : WINDOWS, 1 ligne vide a la fin
Peut-être y'a t-il un moyen plus simple ?
Merci d'avance