=== repetition is the key to memory ===
the key to memory. the key to memory. the key to memory.
if [ 0 ]
then
echo "true"
else
echo "false"
fi
it makes sense in the context of "if this program runs without error". but i get tripped in every other context.
=== loop over files by type ===
for i in in *.webm
do
echo $i
done
will echo those files. be aware that you're probably going to want to enclose ''$i'' in quotes, e.g.:
for i in *.webm
do
ffmpeg -i "$i" "$i.ogg"
done
=== mass rename ===
there’s a package in apt called ''rename''. (not part of the perl distribution; google lead me to some lying liar on the internet. maybe he was right at one time.)
so let's say you found a sick-awesome album. so you've done a nice ''yt-dlp -x --audio-format mp3 --split-chapters https://www.youtube.com/watch?v=aJIDqYZ7qM0''. now you got all these things that are titled like, ''this soundtrack caused me to ACTUALLY DIE and i am a GHOST now (not clickbait) link to my onlyfans in bio, music for men women children best music great music - 001 photograph [aJIDqYZ7qM0].webm'', and a ''002'', and so on.
ls | rename -d 's/ \[[^]]*\]\././'
pipe ''ls'' to ''rename''. -d for "not the directory, only rename the file", and then do a sed-style replacement string.
bonus, you can use ''-n'' or ''--nono'' for "no rename" (or as I like to call it, "not really tho") - i.e., don't actually rename, just do a rename. It spits out a preview. **Be sure to put the -n before the sed pattern.**
you can use named capture groups, but you have to do ''\1'', etc. And then the console will bitch at you that you should have done ''$1'', but ''$1'' doesn't work.