Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1148 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Vérifier si la derniére d'un fichier est une ligne vide

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Vérifier si la derniére d'un fichier est une ligne vide

n°1180721
le fou
Forza Massallia
Posté le 20-11-2009 à 11:32:28  profilanswer
 

Bonjour,
 
j'ai crée un petit script pour vérifier mes fichiers sources (Langage VHDL). Et notament, dans ce script, je vérifie que la présence d'une dernier ligne vide à la fin de mon fichier (et une seule).  
 
Pour ce faire, je fait :
 

Code :
  1. # Derniere ligne du fichier
  2. num_ligne_totale=`cat $FICHIER_VHDL | wc -l`
  3. num_ligne_totale=`expr $num_ligne_totale + 1`
  4. # Derniere ligne du fichier contenant : END TEST;
  5. num_ligne_end=`cat $FICHIER_VHDL | grep -n "END TEST;" | awk -F: '{print $1}'`
  6. # Nombres de ligne voulue : num_ligne_end + 1
  7. num_ligne_totale_normale=`expr $num_ligne_end + 1`
  8. # Si la dernier ligne du fichier n'est pas vide nous ajoutons une nouvelle ligne
  9. ETAT="0"
  10. if [ $num_ligne_end -eq $num_ligne_totale ]; then
  11.    echo "" >> $FICHIER_VHDL
  12.    ETAT="1"
  13. # Nous effacons les lignes vides en fin du fichier en laissant une ligne blanche
  14. elif [ $num_ligne_totale -gt $num_ligne_totale_normale ]; then
  15.    num_ligne_end=`expr $num_ligne_end + 1`
  16.    sed -i "${num_ligne_end},${num_ligne_totale} d" $FICHIER_VHDL
  17.    ETAT="1"
  18. fi
  19. if [ "$ETAT" -ne "0" ]; then
  20.     echo -e "--> Failed n"
  21. else
  22.     echo -e "--> OK n"
  23. fi


 
Cela fonctionne bien, mais c'est peut etre un peu lourd, et pas forcement (voir pas du tout) optimisé.
 
Donc, je me demandais, et je voulais vous demander s'il n'y avait pas un moyen plus simple pour faire cela.  
merci.


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
mood
Publicité
Posté le 20-11-2009 à 11:32:28  profilanswer
 

n°1180727
wedgeant
Da penguin inside
Posté le 20-11-2009 à 11:49:53  profilanswer
 

[ $(tail -1 fichier | wc -w) -eq 0 ] && echo "OK" || echo "FAIL"

 

[:prodigy]


Message édité par wedgeant le 20-11-2009 à 11:51:04

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1180729
le fou
Forza Massallia
Posté le 20-11-2009 à 12:01:47  profilanswer
 

salut,

 

Je viens d'essayer mais ca n'a pas l'air de marcher.
Exemple de fichier


blabla
END TEST;
(ceci est une ligne vide)

 

Si j'applique la commande :


[ $(tail -1  tb_COHERENCE_Voltage_FL_Function.vhd | wc -w) -eq 0 ] && echo "OK" || echo "Fail"

 

j'obtiens


Fail

 

Alors qu'il y a bien une ligne vide  à la fin de mon fichier. J'ai l'impression que tail enleve la dernière ligne si elle est vide.


Message édité par le fou le 20-11-2009 à 12:02:59

---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
n°1180731
wedgeant
Da penguin inside
Posté le 20-11-2009 à 12:03:03  profilanswer
 

ta ligne n'est pas vide, y'a un espace [:aloy]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1180732
wedgeant
Da penguin inside
Posté le 20-11-2009 à 12:06:25  profilanswer
 

Pour ne pas tenir compte des espaces qui pourraient s'être glissés sans prévenir:

[ $(tail -1 fichier | sed -e 's@ @@g' | wc -w) -eq 0 ] && echo "OK" || echo "FAIL"


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1180733
wedgeant
Da penguin inside
Posté le 20-11-2009 à 12:08:01  profilanswer
 

mais par contre si t'as 2 lignes vides, faut adapter quoi, là je vérifie seulement que la dernière est bien vide :o


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1180736
morris aka​ the moose
en décompensation maniaque
Posté le 20-11-2009 à 12:17:08  profilanswer
 

à quoi ca sert de savoir si la dernière ligne d'un fichier est vide?

n°1180753
le fou
Forza Massallia
Posté le 20-11-2009 à 13:22:36  profilanswer
 

wedgeant a écrit :

mais par contre si t'as 2 lignes vides, faut adapter quoi, là je vérifie seulement que la dernière est bien vide :o


 
Ah, je crois avoir compris pourquoi. En fait, je me suis fait avoir par mon editeur de texte. Mais un coup d'oeil avec vi (ou cat -nA) m'a permis de voir qu'en fait je n'avais pas de ligne vide en fin de fichier.
 

morris aka the moose a écrit :

à quoi ca sert de savoir si la dernière ligne d'un fichier est vide?


 
Ben en fait, je souhaite, que tous mes fichiers est leur dernière ligne vide, car il me semblait cela nécessaire  sous linux.
 


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
n°1180754
Fork Bomb
Obsédé textuel
Posté le 20-11-2009 à 13:24:32  profilanswer
 

Il me semblait que tous les programmes l'ajoutaient si celles-ci s'avérait absente...


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1180916
e_esprit
Posté le 21-11-2009 à 10:08:00  profilanswer
 

le fou a écrit :

 

Ben en fait, je souhaite, que tous mes fichiers est leur dernière ligne vide, car il me semblait cela nécessaire  sous linux.

 



T'as lu ça où ? [:tibo2002]

Message cité 1 fois
Message édité par e_esprit le 21-11-2009 à 10:08:20

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
mood
Publicité
Posté le 21-11-2009 à 10:08:00  profilanswer
 

n°1180923
Riot
Buy me a riot
Posté le 21-11-2009 à 11:43:42  profilanswer
 

Je crois que c'est GCC qui est pas content si y'en a pas. Ou ç'a été le cas avant.


---------------
Be the one with the flames.
n°1180980
e_esprit
Posté le 21-11-2009 à 19:19:29  profilanswer
 

Dans sa version 0.1 ? :D
 
Pis bon gcc != Linux :o


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1181013
le fou
Forza Massallia
Posté le 22-11-2009 à 11:43:46  profilanswer
 

e_esprit a écrit :


T'as lu ça où ? [:tibo2002]


 
 
Ben, justement je sais pas. Et j'en étais pas sur.  
 
Mais pour mes fichiers, j'en ai besoin, c'est pour ca que je faisais ce bout de script.


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
n°1182082
blazkowicz
Posté le 26-11-2009 à 20:01:02  profilanswer
 

morris aka the moose a écrit :

à quoi ca sert de savoir si la dernière ligne d'un fichier est vide?

 

parce que un fichier qui se termine par une ligne vide, c'est un peut moins emmerdant? :o

 


debian@debian:~$ cat > pouet
à quoi ca sert de savoir si la dernière ligne d'un fichier est vide?debian@debian:~$
debian@debian:~$
debian@debian:~$ cat pouet
à quoi ca sert de savoir si la dernière ligne d'un fichier est vide?debian@debian:~$

 

(example de fichier qui ne se termine pas par une ligne vide)


Message édité par blazkowicz le 26-11-2009 à 20:01:51

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Vérifier si la derniére d'un fichier est une ligne vide

 

Sujets relatifs
Lecture d'un fichier de conf RDP : des caractères étrangesscript d'envois d'un fichier par mail
ksh extraire valeurs d'un fichierRenommage de fichier avec caractere bizarres ?
Comment trouver la resolution d'une vidéo en ligne de commande[bash] Contrôler la longueur des lignes dans un fichier.
Mise à jour en ligne de centosPAM Fichier access.conf
[resolu] syntaxe pour comparer des chaines lors lecture d'un fichierFichier iso de RedHat
Plus de sujets relatifs à : Vérifier si la derniére d'un fichier est une ligne vide


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR