um-mode/bash/rename/rename.sh
2024-01-11 10:52:52 -08:00

43 lines
765 B
Shell
Executable file

# rename : renames the string descriptor used in numbered series.
# Usage:
# > rename 100.md bar
# or
# > rename 100.foo.md bar
# is equivalent to:
# > mv 100.md 100.bar.md
# > mv 100.foo.md 100.bar.md
# split the args by a newline so that awk reads them as separate "records"
mvcmd=`echo "$1
$2" |
awk '
BEGIN {
# Builtin variable, "field seperator". The neatness of this is the main reason
# I use awk to parse the filename.
FS="."
oldname = ""
num = ""
ext = ""
newname = ""
}
NR == 1 {
oldname = $0
num = $1
# important that this is the last field, not numbered, to allow for a file
# without a string descriptor.
ext = $NF
}
NR == 2 {
newname = sprintf("%s.%s.%s", num, $0, ext)
}
END {
print oldname, newname
}
'`
mv $mvcmd