Partage
  • Partager sur Facebook
  • Partager sur Twitter

vim - lecture nombre de lignes à supprimer

comment dire {un nombre lu dans le fichier}dd ?

Sujet résolu
    24 mai 2016 à 20:23:10

    Bonjour,

    je souhaiterais modifier des fichiers au sein d'un script shell. 

    Pour cela j'utilise vim -s

    Mais je suis bloqué lorsque je veux supprimer un nombre de ligne défini par une variable dans le fichier. Par exemple la première ligne de mon fichier contient le nombre 15 alors je supprime 15 lignes.

    J'ai essayé yy puis @"dd mais çà ne fonctionne pas. 

    Merci de votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      25 mai 2016 à 1:53:39

      salut,

      peut-être est-ce le retour à la ligne ?

      et comme ça ?

      y$
      @"dd



      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        1 juin 2016 à 18:57:05

        vim ne m'apparait pas comme la solution la plus pratique pour ce genre de tâches. sed ou alors head+tail rempliront bien mieux cette tâche.

        Sinon, il faudrait que tu utilises l'option -c de vim. Pour supprimer les lignes 15 à 20, tu aurais pu faire "vim -c 15,20d -c x nomfichier". Mais bon, quand on compare à "sed 5,11d nomfichier", on voit vite à quel point vim n'est pas le plus adapté pour cela.

        Autrement, si ton fichier contient un nombre de lignes puis si tu dois supprimer autant de lignes qu'indiqué (plus la première),

        read n < nomfichier
        sed "1,$((n+1))d" nomfichier


        • Partager sur Facebook
        • Partager sur Twitter
        C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
          2 juin 2016 à 15:41:30

          Bonjour JeandeSauvage,

          Je suis d'avis avec lmghs. Il faut mieux un bon script shell pour traiter un fichier. ( d'autre expert nous diront que l'on peut le faire en python,perl....)

          liens:

          http://tldp.org/LDP/abs/html/index.html

          http://stackoverflow.com/questions/2112469/delete-specific-line-numbers-from-a-text-file-using-sed

          • Partager sur Facebook
          • Partager sur Twitter
            3 juin 2016 à 23:22:51

            Merci pour vos réponses.

            Je vais en effet recourir plus à des scripts shell.

            • Partager sur Facebook
            • Partager sur Twitter

            vim - lecture nombre de lignes à supprimer

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown