Home > other >  bash - regex trim untill symbol
bash - regex trim untill symbol

Time:02-06

trying to trim untill and including symbol " - " .
for some reason, when i add ^(.*?) bash will not modify the varieble.
GNU bash, version 5.1.16(0)-release (amd64-portbld-freebsd12.2)

fname="text1 - text2.jpg"
outp="${fname//^(.*?)\s-\s/}"
echo $outp

expected result: text2.jpg
any suggestions?

CodePudding user response:

You appear to be trying to use a regexp (specifically a PCRE or a BRE or ERE with undefined behavior) instead of a globbing pattern in your command. See https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html.

Is this what you're trying to do?

$ echo "${fname/* - }"
text2.jpg

$ echo "${fname#* - }"
text2.jpg

$ echo "${fname/*[[:space:]]-[[:space:]]}"
text2.jpg
  •  Tags:  
  • Related