Zmiana nazwy wielu plików z użyciem jednego polecenia i wyrażeń regularnych oraz find
Paweł Zuzelski
z w xatka.net
Pon, 5 Paź 2009, 13:56:06 CEST
On Mon, 05 Oct 2009, Daniel Dawid Majewski wrote:
> Pewnego dnia wpadła wieść od Paweł Zuzelski i powiedziała :
> > for I in $(find -name '*6x*.txt'); do mv "$I" "$(sed -e "cały ten długi syf")"; done
> Zależy mi na tym, aby ktoś zorientowany pomógł mi rozłożyć na czynniki pierwsze opcję -exec find-a z całym tym syfem,
największy syf to opcja -exec.
Ale jak koniecznie chcesz to robić w ten sposób, to dodaj sobie
'echo' przed 'mv', to zobaczysz co się dzieje. Na przykład tak:
find -name '*6x*.txt' -exec bash -c 'echo mv "{}" $(echo "{}" | sed -e "s;\(Seria\)\s\(plików\)\s\[6x\([[:digit:]]\{2\}\)\]\s\(.*\)\s(Z.*t);\1.\2.S06T\3.\4;")' ';'
hint:
find -name '*6x*.txt' -exec bash -c 'mv "'{}'" "'"$(echo "{}" | sed -e "s;\(Seria\)\s\(plików\)\s\[6x\([[:digit:]]\{2\}\)\]\s\(.*\)\s(Z.*t);\1.\2.S06T\3.\4;")"'"' ';'
--
Pozdrawiam,
Paweł
Więcej informacji o liście dyskusyjnej pld-users-pl