rename_by_pattern: переименовать файл, изменив его актуальное имя в соответствии с переданным шаблоном
- #!/usr/bin/bash
- # rename_by_pattern [MV_ARGS..] -p|--pattern PATTERN [MV_ARGS..] SOURCE
- # TODO: follow symlink recursively to do not rename a symlink but its target
- declare -a MV_ARGUMENTS
- declare PATTERN
- eval "SOURCE=\$$#"
- set -- "${@:1:(( $# - 1 ))}"
- while (( $# )); do
- case "$1" in
- -p|--pattern)
- if declare -p "$PATTERN" >& /dev/null; then
- echo "You specified a pattern several or more times"
- exit 1
- fi
- PATTERN="$2"
- shift 2
- ;;
- *)
- MV_ARGUMENTS+=( "$1" )
- shift
- ;;
- esac
- done
- mv "${MV_ARGUMENTS[@]}" "$SOURCE" "$(sed -r "$PATTERN" <<< "$SOURCE")"
Синтаксис вызова на третьей стоке. Демонстрация работы http://ix.io/yDG
Значимый эффект достигается при использовании iterator http://ix.io/yDI
Значимый эффект достигается при использовании iterator http://ix.io/yDI