Multiple substitutions in zsh?

Clash Royale CLAN TAG#URR8PPP
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
add a comment |
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
add a comment |
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
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
scripting zsh
edited Feb 9 at 18:59
Rui F Ribeiro
40.9k1479137
40.9k1479137
asked Jan 9 '17 at 21:42
KevinKevin
1063
1063
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
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...
add a comment |
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
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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...
add a comment |
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...
add a comment |
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...
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...
answered Jan 10 '17 at 1:08
thrigthrig
25k23157
25k23157
add a comment |
add a comment |
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
add a comment |
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
add a comment |
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
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
answered Feb 9 at 19:29
Stéphane ChazelasStéphane Chazelas
308k57582940
308k57582940
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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