reginc: possibilité de renommer des fichiers
This commit is contained in:
parent
1787aa2310
commit
e4176dfd94
67
reginc
67
reginc
|
@ -12,18 +12,23 @@ remplacer les nombres de FROMmin à FROMmax par leur valeur correspondante,
|
||||||
sachant que FROMmin doit être remplacé par TO. On peut mentionner autant de
|
sachant que FROMmin doit être remplacé par TO. On peut mentionner autant de
|
||||||
couples (FROM, TO) que nécessaire: ils seront traités dans l'ordre
|
couples (FROM, TO) que nécessaire: ils seront traités dans l'ordre
|
||||||
|
|
||||||
|
$scriptname -r FROMmin-FROMmax TO FILEs...
|
||||||
|
|
||||||
|
renommer les fichiers en remplaçant les nombres de FROMmin à FROMmax par leur
|
||||||
|
valeur correspondante, sachant que FROMmin doit être remplacé par TO
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-n, --fake
|
-n, --fake
|
||||||
Afficher le fichier tel qu'il serait modifié au lieu de le modifier en
|
Afficher le fichier tel qu'il serait modifié au lieu de le modifier en
|
||||||
place"
|
place
|
||||||
|
-r, --rename
|
||||||
|
Renommer les fichiers au lieu de modifier le texte à l'intérieur du
|
||||||
|
fichier. Attention, l'ordre des arguments est différent avec cette
|
||||||
|
option"
|
||||||
}
|
}
|
||||||
|
|
||||||
fake=
|
function process_file() {
|
||||||
args=(
|
local file from to fromb frome seds r
|
||||||
--help '$exit_with display_help'
|
|
||||||
-n,--fake fake=1
|
|
||||||
)
|
|
||||||
parse_args "$@"; set -- "${args[@]}"
|
|
||||||
|
|
||||||
file="$1"; shift
|
file="$1"; shift
|
||||||
[ -n "$file" ] || die "vous devez spécifier le fichier à modifier"
|
[ -n "$file" ] || die "vous devez spécifier le fichier à modifier"
|
||||||
|
@ -68,6 +73,50 @@ done
|
||||||
|
|
||||||
edebug "Script sed: $seds"
|
edebug "Script sed: $seds"
|
||||||
|
|
||||||
[ -n "$fake" ] && args=() || args=(-i)
|
[ -n "$Fake" ] && args=() || args=(-i)
|
||||||
args+=("$seds" "$file")
|
args+=("$seds" "$file")
|
||||||
sed "${args[@]}"
|
sed "${args[@]}"; r=$?
|
||||||
|
|
||||||
|
[ -z "$Fake" -a $r -eq 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Fake=
|
||||||
|
rename=
|
||||||
|
args=(
|
||||||
|
--help '$exit_with display_help'
|
||||||
|
-n,--Fake Fake=1
|
||||||
|
-r,--rename rename=1
|
||||||
|
)
|
||||||
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
||||||
|
if [ -n "$rename" ]; then
|
||||||
|
from="$1"; to="$2"; shift 2
|
||||||
|
|
||||||
|
froms=("$@")
|
||||||
|
ac_set_tmpfile tmptos
|
||||||
|
echo "tos=(" >>"$tmptos"
|
||||||
|
for file in "${froms[@]}"; do
|
||||||
|
qval "$file" >>"$tmptos"
|
||||||
|
done
|
||||||
|
echo ")" >>"$tmptos"
|
||||||
|
|
||||||
|
Fake= process_file "$tmptos" "$from" "$to"
|
||||||
|
eval "$(<"$tmptos")"
|
||||||
|
|
||||||
|
i=0
|
||||||
|
count=${#froms[*]}
|
||||||
|
while [ $i -lt $count ]; do
|
||||||
|
from="${froms[$i]}"
|
||||||
|
to="${tos[$i]}"
|
||||||
|
if [ "$to" == "$from" ]; then
|
||||||
|
ewarn "$from: renommage non nécessaire"
|
||||||
|
else
|
||||||
|
estep "$from --> $to"
|
||||||
|
[ -z "$Fake" ] && mv "$from" "$to"
|
||||||
|
fi
|
||||||
|
let i=i+1
|
||||||
|
done
|
||||||
|
|
||||||
|
else
|
||||||
|
process_file "$@"
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in New Issue