[script shell]

Résolu
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. Bonjour,

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

    (y'a des meilleures solutions)

    Bonne journée
    1. Contributeur
      bonjour,
      un simple editeur de texe, te permets de faire cela .
      a+
      1. Contributeur
        un simple editeur de texe, te permets de faire cela .

        oui à la main
        1. Contributeur
          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

          1. 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 !
            1. Autocorrection :
              '$' = fin de ligne biensur ! (et pas de fichier)
          2. Modérateur
            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$
            

            1. Bien vu!
              Noter qu'en +, j'avais inversé la syntaxe du 'grep'... expression/nomfichier
          3. Modérateur
            pour prendre en compte aussi les eventuels espaces avec grep
            grep -v '^ *$' fichier > resultat

            1. Contributeur
              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
              1. Contributeur
                merci jipicy, j'y pas pensé de cherché dans le faq :-((