ufile: support des pattern regex
This commit is contained in:
parent
6130c2ff7f
commit
7bd0a95b3e
12
ufile
12
ufile
|
@ -12,7 +12,11 @@ Dans ce fichier, le tableau RULES contient des règles qui sont chacune de la
|
|||
forme pattern:destdir[:renamef]
|
||||
|
||||
- pattern est au format glob et identifie les fichiers auxquels s'applique la
|
||||
règle
|
||||
règle, sauf si la chaine commence par / auquel cas il s'agit d'une expression
|
||||
régulière reconnue par awk. Par exemple, les deux patterns suivants sont
|
||||
équivalents:
|
||||
[ab]cd*.pdf
|
||||
/[ab]cd.*\\\\.pdf\$
|
||||
- destdir est le répertoire de destination dans lequel classer le fichier
|
||||
- renamef est une fonction qui permet de supporter le renommage d'un fichier
|
||||
lors de son classement. Sa signature est 'renamef filename pf destdir' où
|
||||
|
@ -107,7 +111,7 @@ function __set_dest() {
|
|||
setx dest=abspath "$dest"
|
||||
else
|
||||
__check_destdir "$destdir" "$rule" || return 1
|
||||
setx dest=joinp "$destdir" "$filename"
|
||||
setx dest=joinp "$destdir" "$dest"
|
||||
fi
|
||||
upvar dest "$dest"
|
||||
return 0
|
||||
|
@ -223,7 +227,11 @@ for file in "${files[@]}"; do
|
|||
odestdir="$HOME"
|
||||
fi
|
||||
|
||||
if [ "${pattern#/}" != "$pattern" ]; then
|
||||
awk -v filename="$filename" -v pattern="${pattern#/}" 'BEGIN { exit(filename ~ pattern? 0: 1) }' || continue
|
||||
else
|
||||
eval "[[ \"\$filename\" == $(qwc "$pattern") ]]" || continue
|
||||
fi
|
||||
|
||||
unset dest
|
||||
interaction=--DEFAULT--
|
||||
|
|
Loading…
Reference in New Issue