Re:Four features that justify a new Unix shell
by esaym on Friday October 23, 2020 @10:07PM
(#24876331)
Feel free to demonstrate. Take a long path with nasty characters and give me the ending file name. I want "track1.mp3" returned from:
[ Parent
| on HN ]
Re:Four features that justify a new Unix shell
by zimpenfish on Friday October 23, 2020 @10:38PM
(#24876493)
If you have that in a variable, which you presumably would if you're reading them one at a time, you can use "remove longest matching prefix" substitution.
$ i="/podcast/with/nasty'--c h a r$/and/stuff/track1.mp3"
$ echo "${i##*/}"
track1.mp3
[Edit: 'thezilch beat me too it by a couple of minutes]
Re:Four features that justify a new Unix shell
by sergeykish on Saturday October 24, 2020 @08:22AM
(#24878727)
This part is really cryptic, I would prefer
$ function remove_longest_matching_prefix () { echo "${1##$2}"; }
$ remove_longest_matching_prefix "$i" '*/'
track1.mp3
awk -F/ accepts stream as in perl example
Re:Four features that justify a new Unix shell
by Jare on Saturday October 24, 2020 @06:46AM
(#24878315)
You still get +1 for providing a pointer to the explanation while remaining clear and succinct.
Re:Four features that justify a new Unix shell
by AareyBaba on Friday October 23, 2020 @10:28PM
(#24876436)
$ basename "/podcast/with/nasty'--c h a r$/and/stuff/track1.mp3"
track1.mp3