Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-01-26 12:17:16

  harlequin - Użytkownik

harlequin
Użytkownik
Skąd: dolnośląskie
Zarejestrowany: 2006-03-06

hurtowa zmiana znaku w nazwach plików

Mam sporo zdjęć z internetu, jednak w ich nazwach zawsze jest "&" co rodzi problemy. Jak za jednym zamachem zamienić dla wszystkich plików w katalogu zanak "&" na np. "_" w ich nazwach.


[/url]

Offline

 

#2  2007-01-26 12:24:03

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: hurtowa zmiana znaku w nazwach plików

Kod:

find ./ -type f -exec rename 's/&/_/g' {} ;

W katalogu gdzie sa te pliki.

PS. Raczej do programowania się ten temat nadaje. ;)


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#3  2007-01-26 12:28:00

  harlequin - Użytkownik

harlequin
Użytkownik
Skąd: dolnośląskie
Zarejestrowany: 2006-03-06

Re: hurtowa zmiana znaku w nazwach plików

Myślałem najpierw o jakimś dziale dla początkujących ale jak zobaczyłem magiczną linię zmieniłem zdanie ;).
Dzięki. Zwyczjnie tępo wkleję ją do terminala ;)

[edit]
niestety nie zadziałało.

Kod:

$ ls
b&n035.jpg  b&n063.jpg  b&n114.jpg  b&n158.jpg
b&n003.jpg               b&n036.jpg  b&n064.jpg  b&n115.jpg  b&n159.jpg
b&n007.jpg               b&n038.jpg  

$ find ./ -type f -exec rename 's/&/_/g' {} ;

$ ls
b&n035.jpg  b&n063.jpg  b&n114.jpg  b&n158.jpg
b&n003.jpg               b&n036.jpg  b&n064.jpg  b&n115.jpg  b&n159.jpg
b&n007.jpg               b&n038.jpg  b&n065.jpg  b&n116.jpg  b&n160.jpg

[/url]

Offline

 

#4  2007-01-26 12:36:09

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: hurtowa zmiana znaku w nazwach plików

prostym skryptem :-)

Kod:

#!/bin/bash

for PLIK in `ls | grep '&'` ; do
    PRZED=`echo $PLIK|cut -d '&' -f1`
    PO=`echo $PLIK|cut -d '&' -f2`
    mv $PLIK $PRZED$PO
done

Tylko dobrze by było żebyś zrobił kopie tych plików lub zmienił mv na cp. Bo nie jestem do końca pewny działania ;-) (przetestowałem na jednym pliku)

//EDIT: Jak to sie dzieje, że mój post ląduje na 4 miejscu, a gdy zacząłem pisac go to w wątku post był jeden ;-)

Offline

 

#5  2007-01-26 12:41:32

  harlequin - Użytkownik

harlequin
Użytkownik
Skąd: dolnośląskie
Zarejestrowany: 2006-03-06

Re: hurtowa zmiana znaku w nazwach plików

przetestowane na raz na 103 plikach. Działa. Dzięki.


[/url]

Offline

 

#6  2007-01-26 12:54:21

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: hurtowa zmiana znaku w nazwach plików

niestety nie zadziałało

dziwne, u mnie poszło pięknie

Kod:

~/test$ ls
b&n035.jpg  b&n063.jpg  b&n114.jpg  b&n158.jpg
~/test$ find ./ -type f -exec rename 's/&/_/g' {} ;
~/test$ ls
b_n035.jpg  b_n063.jpg  b_n114.jpg  b_n158.jpg

Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#7  2007-01-26 12:55:19

  Tech - Wielki Brat

Tech
Wielki Brat
Skąd: Hel
Zarejestrowany: 2004-04-22

Re: hurtowa zmiana znaku w nazwach plików


Ktoś mądry kiedyś powiedział: jak nie masz nic ciekawego do powiedzenia, to się nie odzywaj !!!

Linux Registered User: #344405
GnuPG - C22A 2BA8 BECA 173F 713B A57B DF1A C4B4 E282 AE82

Offline

 

#8  2007-01-26 13:13:15

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: hurtowa zmiana znaku w nazwach plików

Heh. każdy problem posiada trywialne rozwiązanie ;-)

Offline

 

#9  2007-01-26 14:27:02

  KARQL - Członek DUG

KARQL
Członek DUG
Zarejestrowany: 2006-03-06

Re: hurtowa zmiana znaku w nazwach plików

Moje rozwiazanie:D

Kod:

find -maxdepth 1 -type f -exec bash -c 'mv "{}" $(echo "{}" | tr "&" "_")' ;

Jesli usuniesz lub dasz wiekszy maxdepth to bedzie rekurencyjnie po folderach:D Dlatego do takich operacji wole uzywac finda niz ls:D

Kod:

karql@tartar ~/nazwy $ ls
obr&z10.jpg  obr&z1.jpg  obr&z2.jpg  obr&z3.jpg  obr&z4.jpg  obr&z5.jpg  obr&z6.jpg  obr&z7.jpg  obr&z8.jpg  obr&z9.jpg
karql@tartar ~/nazwy $ find -maxdepth 1 -type f -exec bash -c 'mv "{}" $(echo "{}" | tr "&" "_")' ;
karql@tartar ~/nazwy $ ls
obr_z10.jpg  obr_z1.jpg  obr_z2.jpg  obr_z3.jpg  obr_z4.jpg  obr_z5.jpg  obr_z6.jpg  obr_z7.jpg  obr_z8.jpg  obr_z9.jpg
karql@tartar ~/nazwy $

Tutaj macie jeszcze troche bardziej rozbudowany skrypt w perlu co kiedys moj znajomy pisal.
http://www.uploading.com/files/ZUSX4328/fixname.tar.bz2.html


http://img254.imageshack.us/img254/1225/gentoobar1rs9.png

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)