Anexar caminho ao nome do arquivo

2

Eu tenho algumas imagens chamadas test1.jpg em muitas subpastas. Eu quero essencialmente acrescentar o caminho do arquivo ao seu nome para que não haja confusão.

caminho da amostra:

/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg

Quando terminar, quero que o arquivo seja renomeado:

123_02_01_01.jpg

Alguém pode me ajudar a fazer isso usando os comandos find e mv. Eu sou relativamente novo para bater.

#!/bin/bash

 find . -name '*.jpg' | grep test1
     newname="$(echo ${FILE} | grep -o "[0-9]*" | tr "\n" "_" | sed s/2016_//;s/_$/.jpg\n/;')"
     mv "${FILE}" "${newname}" ;
 done
exit 0
    
por Double Diamond 27.11.2016 / 00:18

1 resposta

0

algo para começar com você;

$ echo "/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg" | grep -o "[0-9]*" | tr "\n" "_" | sed 's/_$/.jpg\n/;'
2016_123_2_1.jpg

EDIT, ignore 2016;

$ echo "/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg" | grep -o "[0-9]*" | tail -n +2 | tr "\n" "_" | sed 's/_$/.jpg\n/;'
123_2_1.jpg

ou

$ echo "/tmp/xxx2016/folder123/folder2/folderxxx/test1.jpg" | grep -o "[0-9]*" | tr "\n" "_" | sed 's/2016_//;s/_$/.jpg\n/;'
123_2_1.jpg
    
por 27.11.2016 / 00:40