Skip to main content
added 4 characters in body
Source Link
RomanPerekhrest
  • 30.9k
  • 5
  • 47
  • 68

find + bash solution:

find . -type f -regextype posix-egrep \
    -regex ".*EN(ACT|CD)_[0-9]+_E(-|_)DM_CCA_.+[0-9]\.(txt|csv)$" -exec bash -c \
    'fn=${0##*/}; dir_n="${0%/*}/"; 
    [[ "$fn" =~ .*_(ID[^_]+)_.*\.(txt|csv)$ ]]; 
    mv "$0" "$dir_n${BASH_REMATCH[1],,}.${BASH_REMATCH[2]}"; ' {} \;

find + bash solution:

find . -type f -regextype posix-egrep \
-regex ".*EN(ACT|CD)_[0-9]+_E(-|_)DM_CCA_.+[0-9]\.(txt|csv)$" -exec bash -c \
'fn=${0##*/}; dir_n="${0%/*}/"; 
 [[ "$fn" =~ .*_(ID[^_]+)_.*\.(txt|csv)$ ]]; 
 mv "$0" "$dir_n${BASH_REMATCH[1],,}.${BASH_REMATCH[2]}"; ' {} \;

find + bash solution:

find . -type f -regextype posix-egrep \
    -regex ".*EN(ACT|CD)_[0-9]+_E(-|_)DM_CCA_.+[0-9]\.(txt|csv)$" -exec bash -c \
    'fn=${0##*/}; dir_n="${0%/*}/"; 
    [[ "$fn" =~ .*_(ID[^_]+)_.*\.(txt|csv)$ ]]; 
    mv "$0" "$dir_n${BASH_REMATCH[1],,}.${BASH_REMATCH[2]}"; ' {} \;
Source Link
RomanPerekhrest
  • 30.9k
  • 5
  • 47
  • 68

find + bash solution:

find . -type f -regextype posix-egrep \
-regex ".*EN(ACT|CD)_[0-9]+_E(-|_)DM_CCA_.+[0-9]\.(txt|csv)$" -exec bash -c \
'fn=${0##*/}; dir_n="${0%/*}/"; 
 [[ "$fn" =~ .*_(ID[^_]+)_.*\.(txt|csv)$ ]]; 
 mv "$0" "$dir_n${BASH_REMATCH[1],,}.${BASH_REMATCH[2]}"; ' {} \;