Here's another basic thing I've forgotten how to do: split a string and return the first part at a delimiter (in this case a colon
:).
My code (scriptname: getfilenames.sh)
Code:
tg="$1"
while IFS=":" read -r y
do
echo "${y%%*:}"
done < "$tg"
echo "${y%%*:}"
done < "$tg"
stdout returns, on an example file (see attachment):
Code:
bash getfilenames.sh theunders
038_1000.jpg:Underwater Wonders
167_1000.jpg:Underwater Wonders
501_1000.jpg:Underwater Wonders
732_1000.jpg:Underwater Wonders
her-job-intrvu.jpg:Underwater Wonders
ihre-tag-im-ozean.jpg:Underwater Wonders
suf-261-919-015.jpg:Underwater Wonders
suf-699-136-133.jpg:Underwater Wonders
suf-791-432-188.jpg:Underwater Wonders
suf-936-891-544.jpg:Underwater Wonders
suf-996-295-145.jpg:Underwater Wonders
What I want it to return is
- 038_1000.jpg
167_1000.jpg
501_1000.jpg
732_1000.jpg
her-job-intrvu.jpg
ihre-tag-im-ozean.jpg
suf-261-919-015.jpg
suf-699-136-133.jpg
suf-791-432-188.jpg
suf-936-891-544.jpg
suf-996-295-145.jpg
How do I get there, in pure BASH. I want to get away from using
cut, but I'm on the verge of resorting to it if I can't find an "internal" work-around.
Carver.