Files
q-tools/mvregex
2015-01-20 18:38:11 +02:00

34 lines
957 B
Bash
Executable File

#!/bin/bash
IFS=$'\n'
if [ -z "$1" ]
then echo rename files in current folder replacing arg1 with arg2.
echo '-n for match non ascii, replace with arg2'
exit
fi
POSTPROC="sed 's, , -> ,'"
which ncsv &>/dev/null && POSTPROC="ncsv -c"
c=0
if [ "$1" = "-n" ]
then for file in $( ls | grep -P "[\x80-\xFF]" )
do echo "$file" '->' "$( echo $file | tr -d \\n\\r | tr -c [:print:] '\000' | sed s/'\x0'/"$2"/g )"
c=$(( $c + 1 ))
done
echo $c' matches. Sure?'
read i
for file in $( ls | grep -P "[\x80-\xFF]" )
do mv -iv -- "$file" "$( echo $file | tr -d \\n\\r | tr -c [:print:] '\000' | sed s/'\x0'/"$2"/g )"
done
exit
fi
(
echo -e "Matching\tReplaced"
for file in $( ls | grep -- "$1" )
do echo -e "$file"\\t"$( echo $file | sed s/"$1"/"$2"/g )"
done ) | eval $POSTPROC | grep --color=always -E "$1|$"
echo 'Sure?'
read i
for file in $( ls | grep -- "$1" )
do mv -iv -- "$file" "$( echo $file | sed s/"$1"/"$2"/g )"
done