[bash] zmiana nazwy pliku w wielu katalogach - SOLVED

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
ziemowitzima
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 01 wrz 2010, 20:00
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86_64

[bash] zmiana nazwy pliku w wielu katalogach - SOLVED

Post autor: ziemowitzima »

witam,
mam taki problem do rozwiązania:
w katalogu "results", mam katalogi o nazwach :
1050.2000
1050.4000
...
1098.8000
1100.0000
w każdym z tych katalogów jest plik : "(1_d)wu_z"

Potrzebuję napisać skrypt, który automatycznie zmieni mi nazwę tego (tych ) pliku w każdym katalogu na np: "wu_z".
Mam podstawowe pojęcie o [bash], ale nie wiem jak zrobić aby w pętli "zwiększać/zmieniać" nazwę katalogu o 0.2000 ...

Będę niezmiernie wdzięczny za pomoc !
-ZM
Ostatnio zmieniony 02 sie 2011, 19:59 przez ziemowitzima, łącznie zmieniany 1 raz.
Awatar użytkownika
kondziu jah
Zakręcona Traszka
Zakręcona Traszka
Posty: 621
Rejestracja: 27 wrz 2010, 19:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86_64
Lokalizacja: Wrocław
Kontakt:

Re: [bash] zmiana nazwy pliku w wielu katalogach

Post autor: kondziu jah »

A nie przejdzie z nazwą katalogu

Kod: Zaznacz cały

/ścieżka/results/1*000/
?
"*" oznacza dowolny ciąg znaków ;)
Skrypt pobierający najnowszy sterownik nvidia -> http://adf.ly/Y8HRT
http://adf.ly/Y8HMh -> zaproszenie do dropboksa -> 500MB gratis.
http://adf.ly/?id=5385762 -> zarabiaj na linkowaniu
http://adf.ly/YIOh1 -> UIQ3 is not dead!
ziemowitzima
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 01 wrz 2010, 20:00
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [bash] zmiana nazwy pliku w wielu katalogach

Post autor: ziemowitzima »

dzięki,
to wygląda na dobre i proste rozwiązanie.
ale coś nie działa, jak wpisuję w konsoli:
...$ cp ./1*000/'(1_d)wu_z' ./1*000/wu_z
otrzymuję wiadomość:
cp: cel `./1050.2000/wu_z' nie jest katalogiem

aczkolwiek ja wpisuję w konsoli jawnie:
...$ cp ./1050.2000/'(1_d)wu_z' ./1050.2000/wu_z
wszystko jest ok...

-- 02 sie 2011 18:56 --

Znalazłem rozwiązanie, można to zrobić w jednej linii wpisując w konsoli :

find . -name "(1_d)wu_z" -exec rename -n 's!\(1_d\)!!' {} +
Remove the '-n' to actually execute the code.

rozwiązanie z:
http://ubuntuforums.org/showthread.php? ... st11111747
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 19 gości