48 lines
692 B
Plaintext
48 lines
692 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Rename a list of files with a sed pattern
|
||
|
|
||
|
usage() {
|
||
|
echo "Usage: $0 PATTERN [-d] < filelist"
|
||
|
echo
|
||
|
echo "Arguments:"
|
||
|
echo " PATTERN Sed pattern to apply"
|
||
|
echo
|
||
|
echo "Options:"
|
||
|
echo " -d Dry run"
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
if [[ -z "$1" ]]; then
|
||
|
usage
|
||
|
fi
|
||
|
|
||
|
pattern="$1"
|
||
|
|
||
|
dry=1
|
||
|
if [[ -n "$2" ]]; then
|
||
|
if [[ "$2" = '-d' ]]; then
|
||
|
dry=0
|
||
|
else
|
||
|
usage
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
while read src
|
||
|
do
|
||
|
dst="$(echo "$src" | sed "$pattern")"
|
||
|
if [[ $? != 0 ]]; then
|
||
|
echo "ERREUR Invalid sed pattern"
|
||
|
exit 2
|
||
|
fi
|
||
|
if [[ $dry == 0 ]]; then
|
||
|
echo "$src" → "$dst"
|
||
|
else
|
||
|
mv "$src" "$dst"
|
||
|
fi
|
||
|
|
||
|
done
|
||
|
|
||
|
|
||
|
|