Multiple substitutions in zsh?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












1















I have a function that creates a new markdown file, but I was wondering how can I simplify this?



 today=$(date +"%F")
title=$1:l
clean_title=$title//[^a-zA-Z0-9]/-
filename="$today-$clean_title.markdown"


I figured I could combine the title/clean_title into one, but when I try something like ${1:l... or ${$1:l... I get console error about bad substitution. Is this possible?










share|improve this question




























    1















    I have a function that creates a new markdown file, but I was wondering how can I simplify this?



     today=$(date +"%F")
    title=$1:l
    clean_title=$title//[^a-zA-Z0-9]/-
    filename="$today-$clean_title.markdown"


    I figured I could combine the title/clean_title into one, but when I try something like ${1:l... or ${$1:l... I get console error about bad substitution. Is this possible?










    share|improve this question


























      1












      1








      1








      I have a function that creates a new markdown file, but I was wondering how can I simplify this?



       today=$(date +"%F")
      title=$1:l
      clean_title=$title//[^a-zA-Z0-9]/-
      filename="$today-$clean_title.markdown"


      I figured I could combine the title/clean_title into one, but when I try something like ${1:l... or ${$1:l... I get console error about bad substitution. Is this possible?










      share|improve this question
















      I have a function that creates a new markdown file, but I was wondering how can I simplify this?



       today=$(date +"%F")
      title=$1:l
      clean_title=$title//[^a-zA-Z0-9]/-
      filename="$today-$clean_title.markdown"


      I figured I could combine the title/clean_title into one, but when I try something like ${1:l... or ${$1:l... I get console error about bad substitution. Is this possible?







      scripting zsh






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Feb 9 at 18:59









      Rui F Ribeiro

      40.9k1479137




      40.9k1479137










      asked Jan 9 '17 at 21:42









      KevinKevin

      1063




      1063




















          2 Answers
          2






          active

          oldest

          votes


















          1














          Nest the $... bits, though do also consider how readable the code will be for future readers.



          () clean_title=$$1:l//[^a-zA-Z0-9]/-; printf "$clean_title" " BLA "


          Also the A-Z match probably doesn't make much sense given the earlier lowercase...






          share|improve this answer






























            1














            In zsh, you can nest parameter expansion operators. You can also get the date with the prompt expansion of %D%F (zsh also has a strftime builtin in the zsh/datetime module if you want some more verbose and readable code).



            filename=$(%):-%D%F-$$1//[^[:alnum:]]/-:l





            share|improve this answer






















              Your Answer








              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "106"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );













              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f336098%2fmultiple-substitutions-in-zsh%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              1














              Nest the $... bits, though do also consider how readable the code will be for future readers.



              () clean_title=$$1:l//[^a-zA-Z0-9]/-; printf "$clean_title" " BLA "


              Also the A-Z match probably doesn't make much sense given the earlier lowercase...






              share|improve this answer



























                1














                Nest the $... bits, though do also consider how readable the code will be for future readers.



                () clean_title=$$1:l//[^a-zA-Z0-9]/-; printf "$clean_title" " BLA "


                Also the A-Z match probably doesn't make much sense given the earlier lowercase...






                share|improve this answer

























                  1












                  1








                  1







                  Nest the $... bits, though do also consider how readable the code will be for future readers.



                  () clean_title=$$1:l//[^a-zA-Z0-9]/-; printf "$clean_title" " BLA "


                  Also the A-Z match probably doesn't make much sense given the earlier lowercase...






                  share|improve this answer













                  Nest the $... bits, though do also consider how readable the code will be for future readers.



                  () clean_title=$$1:l//[^a-zA-Z0-9]/-; printf "$clean_title" " BLA "


                  Also the A-Z match probably doesn't make much sense given the earlier lowercase...







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Jan 10 '17 at 1:08









                  thrigthrig

                  25k23157




                  25k23157























                      1














                      In zsh, you can nest parameter expansion operators. You can also get the date with the prompt expansion of %D%F (zsh also has a strftime builtin in the zsh/datetime module if you want some more verbose and readable code).



                      filename=$(%):-%D%F-$$1//[^[:alnum:]]/-:l





                      share|improve this answer



























                        1














                        In zsh, you can nest parameter expansion operators. You can also get the date with the prompt expansion of %D%F (zsh also has a strftime builtin in the zsh/datetime module if you want some more verbose and readable code).



                        filename=$(%):-%D%F-$$1//[^[:alnum:]]/-:l





                        share|improve this answer

























                          1












                          1








                          1







                          In zsh, you can nest parameter expansion operators. You can also get the date with the prompt expansion of %D%F (zsh also has a strftime builtin in the zsh/datetime module if you want some more verbose and readable code).



                          filename=$(%):-%D%F-$$1//[^[:alnum:]]/-:l





                          share|improve this answer













                          In zsh, you can nest parameter expansion operators. You can also get the date with the prompt expansion of %D%F (zsh also has a strftime builtin in the zsh/datetime module if you want some more verbose and readable code).



                          filename=$(%):-%D%F-$$1//[^[:alnum:]]/-:l






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Feb 9 at 19:29









                          Stéphane ChazelasStéphane Chazelas

                          308k57582940




                          308k57582940



























                              draft saved

                              draft discarded
















































                              Thanks for contributing an answer to Unix & Linux Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f336098%2fmultiple-substitutions-in-zsh%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown






                              Popular posts from this blog

                              Peggy Mitchell

                              Palaiologos

                              The Forum (Inglewood, California)