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
une.txt
deux.txt
Voici le résultat erroné :
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
Peut-être y'a t-il un moyen plus simple ?
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
Merci d'avance
Partager