Partage
  • Partager sur Facebook
  • Partager sur Twitter

effacer le dernier caractère d'une variable

Sujet résolu
    6 juillet 2021 à 12:09:17

    Bonjour,

    Je sais que cette question à surement déjà été posée mais je trouve beaucoup de solutions très compliquées utilisant la commande sed. Voici le problème:

    sudo tar -zcf "$1$date.tar.gz" "$2"

    l'argument 2 étant un répertoire je me retrouve avec quelque chose du type

    /home/toto/Document/backup/

    et le problème viens du dernier slash que tar n'aime pas vraiment. J'ai pensé à cut mais je n'ai pas trouvé...

    Voila, un peu d'aide serait le bien venu je viens de commencer le bash, merci d'avance :)


    -
    Edité par Quegzacov 6 juillet 2021 à 12:12:33

    • Partager sur Facebook
    • Partager sur Twitter

    "A computer is like air conditioning, it becomes useless when you open Windows" Linus Torvalds

      6 juillet 2021 à 14:31:06

      salut,

      en bash : 

      sudo tar -zcf "$1$date.tar.gz" "${2%*/}"

      cf. man bash /Remplacements de paramètres

      • Partager sur Facebook
      • Partager sur Twitter

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

        6 juillet 2021 à 14:49:13

        dantonq a écrit:

        salut,

        en bash : 

        sudo tar -zcf "$1$date.tar.gz" "${2%*/}"

        cf. man bash /Remplacements de paramètres


        Mince j'étais certain qu'une commande de tar le permettait (en l'occurrence c'est en bash...Mais j'aurais cru que tu lui aurais proposé sed, après tout il est assez simple et sans doute plus direct dans la méthode...(enfin il faudrait voir le code, mais sed est léger, c'est juste ingurgiter les expression régulières qui ne le sont que moyennement...Mais c'est pas plus compliqué qu'un termcap ou terminfo en fait)
        • Partager sur Facebook
        • Partager sur Twitter
          6 juillet 2021 à 17:17:22

          on peut s'amuser encore plus avec bash:
          $ var=/home/toto/Document/backup/
          $ [[ $var =~ (.+)/$ ]] && var="${BASH_REMATCH[1]}"
          $ echo "$var"
          /home/toto/Document/backup
          $
          $ var=/home/toto/Document/backup
          $ [[ $var =~ (.+)/$ ]] && var="${BASH_REMATCH[1]}"
          $ echo "$var"
          /home/toto/Document/backup
          
          • Partager sur Facebook
          • Partager sur Twitter

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

            6 juillet 2021 à 17:58:13

            dantonq a écrit:

            salut,

            en bash : 

            sudo tar -zcf "$1$date.tar.gz" "${2%*/}"

            cf. man bash /Remplacements de paramètres


            merci beaucoup! ce sujet est donc résolu :) 

            J'aurais tout de même une dernière question: peut-on utiliser --mode comme pour mkdir ?

            -
            Edité par Quegzacov 6 juillet 2021 à 18:11:54

            • Partager sur Facebook
            • Partager sur Twitter

            "A computer is like air conditioning, it becomes useless when you open Windows" Linus Torvalds

              6 juillet 2021 à 18:55:36

              autre question = autre sujet => nouvelle discussion. :)
              • Partager sur Facebook
              • Partager sur Twitter

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

              effacer le dernier caractère d'une variable

              × 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