[script shell]

Résolu
aruju Messages postés 2219 Date d'inscription   Statut Contributeur Dernière intervention   -  
aruju Messages postés 2219 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour,

je ne sais pour quel raison lors de création des pages html le NVU génère énormément de lignes vides et comme je n'ai pas trouvé de logiciels pour les effacer je me suis dis que un script shell serrai une solution, seul souci ce que moi + shell = 0

alors si quelqu'un pouvait m'aider ca serai sympa :-)

merci
--
L'expérience, c'est le nom que chacun donne à ses erreurs.
Oscar Wilde
Configuration: Debian

10 réponses

  1. Marc
     
    Bonjour,

    cat monFichier | grep -iv "^$" > monNouveaFichierSansLignesVides

    (y'a des meilleures solutions)

    Bonne journée
    0
  2. jeanbi Messages postés 15399 Date d'inscription   Statut Contributeur Dernière intervention   2 383
     
    bonjour,
    un simple editeur de texe, te permets de faire cela .
    a+
    0
  3. aruju Messages postés 2219 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    un simple editeur de texe, te permets de faire cela .

    oui à la main
    0
  4. aruju Messages postés 2219 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    merci Marc mais ton script ne me permet pas d'enlever tous les espaces..

    exemple:

    entre la 1ere et 2eme ligne j'ai une 10aine de lignes vides et ta commande me permet d'enlever que 5 lignes vides

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Marc
     
    grep -iv tonFichier "^ *$" > tonNouveauFichier

    Effectivement, j'avais oublié les lignes avecs des ' '.

    Petite explication :
    '^' = début de ligne
    ' ' = caractère espace
    '*' = 0 a infini de fois caractère précédent, donc le ' '
    '$' = fin de fichier

    Pour plus d'infos : man grep

    Bonne journée !
    0
    1. Marc
       
      Autocorrection :
      '$' = fin de ligne biensur ! (et pas de fichier)
      0
  7. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,
    y'a des meilleures solutions
    pas besoin de cat :-)

    lami20j@deb:~/trash$ cat fichier
    jsdklfjsdkl
    
    
    
    sdkfjklsd
    
    
    
    sdkfjlsd
    
    lami20j@deb:~/trash$ grep -v '^$' fichier
    jsdklfjsdkl
    sdkfjklsd
    sdkfjlsd
    lami20j@deb:~/trash$ grep -v '^$' fichier > resultat
    lami20j@deb:~/trash$ cat resultat
    jsdklfjsdkl
    sdkfjklsd
    sdkfjlsd
    lami20j@deb:~/trash$
    aussi avec sed, modification sur place, le fichier original sera sauvegarder avec l'extension .orig
    lami20j@deb:~/trash$ cat fichier
    jsdklfjsdkl
    
    
    
    sdkfjklsd
    
    
    
    sdkfjlsd
    
    lami20j@deb:~/trash$ sed -i.orig '/^\s*$/'d fichier
    lami20j@deb:~/trash$ cat fichier
    jsdklfjsdkl
    sdkfjklsd
    sdkfjlsd
    lami20j@deb:~/trash$ cat fichier.orig
    jsdklfjsdkl
    
    
    
    sdkfjklsd
    
    
    
    sdkfjlsd
    
    lami20j@deb:~/trash$
    

    0
    1. Marc
       
      Bien vu!
      Noter qu'en +, j'avais inversé la syntaxe du 'grep'... expression/nomfichier
      0
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    pour prendre en compte aussi les eventuels espaces avec grep
    grep -v '^ *$' fichier > resultat

    0
  9. aruju Messages postés 2219 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    merci a vous deux :-) les deux commandes marche, cela dit la solution de lami20j (avec le sauvegarde de fichier d'origine) c'est ce que j'ai cherché

    merci encore
    0
  10. aruju Messages postés 2219 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    merci jipicy, j'y pas pensé de cherché dans le faq :-((
    0