Nowe posty

Autor Wątek: Potrzebny skrypt  (Przeczytany 6087 razy)

darkmanek

  • Gość
Potrzebny skrypt
« dnia: 2008-09-09, 01:56:10 »
Witam!
Potrzbuję skryptu do masowej zmiany nazwy, a właściwie do masowego wycięcia z nazwy pliku pewnego ciągu znaków. Próbowałem za pomocą "rename" i "tr",
jednak nie potrafię tak napisać skryptu, żeby usunął tylko ten ciąg, który mu wpisuję.
Potrzebuję tego, ponieważ pozgrywałem streamripper'em muzykę z radia i mam na dysku sporo plików do zmiany nazwy, a mam zamiar nagrać więcej...
Pozdrawiam!

arctgx

  • Gość
Potrzebny skrypt
« Odpowiedź #1 dnia: 2008-09-09, 02:45:19 »
man --locale=pl_PL -P 'less -p "Podstawianie parametrów"' bash
lub w przypadku braku polskiego podręcznika
man --locale=C -P 'less -p "Parameter Expansion"' bash
Przyjrzyj się też tym przykładom - może znajdziesz coś dla siebie: http://newbie.linux.pl/?id=article&kategoria=89&show=391

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Potrzebny skrypt
« Odpowiedź #2 dnia: 2008-09-09, 15:25:58 »

darkmanek

  • Gość
Potrzebny skrypt
« Odpowiedź #3 dnia: 2008-09-09, 20:42:09 »
Witam.
Dzięki za zainteresowanie, oczywiście poczytałem wszystko i kombinuję dalej.
Niestety nie jestem dobry w te klocki, uczę się dopiero ;)
Pomożecie?
A oto co wykombinowałem z linka @ultr
Dobrze kombinuję?

SUFF=[_tekst_do_usunięcia_]
suff=.mp3

for i in $(ls *$SUFF)
do
  mv -f $i ${i%$SUFF}$suff
done

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Potrzebny skrypt
« Odpowiedź #4 dnia: 2008-09-09, 23:03:46 »
Prawie. Tylko źle z tym rozszerzeniem mp3. Szukaj od razu *.mp3 zamiast wszystkich. Potem przy `mv` doklejenie kolejnego ".mp3" nic nie da.

Raczej coś takiego:

DELETEME="tekst do usuniecia"
for plik in $(ls -1 *.mp3); do
  plik2=${plik%$DELETEME}
  if [ "$plik2" != "$plik" ]; then
    mv "$plik" "$plik2"
  fi
done

darkmanek

  • Gość
Potrzebny skrypt
« Odpowiedź #5 dnia: 2008-09-10, 04:26:17 »
@ultr: dzięki!
Zaczynam tak powolutku łapać, ale chyba sporo czasu minie, zanim zapamiętam i pojmę te wszystkie perametry.
Pozdrawiam!

Edit: Hmmm... mam w nazwie pliku nawias kwadratowy.Właśnie to w nawiasie chcę usunąć razem z nawiasem. Powinienem użyć znaków maskujących?
Próbowałem na wiele sposobów, jednak nic nie wymyśliłem, co by zadziałało...
Proszę o pomoc.

kecajkr

  • Gość
Potrzebny skrypt
« Odpowiedź #6 dnia: 2009-10-16, 10:22:46 »
#!/bin/bash
for nazwa_pliku in maska_plikow_do_zamiany
do
mv $nazwa `echo $nazwa | sed 's/tekst_do_wyciecia//'`
done

proste-szybkie-skuteczne

kecajkr

  • Gość
Potrzebny skrypt
« Odpowiedź #7 dnia: 2009-10-16, 10:24:06 »
#!/bin/bash
for nazwa in maska_plikow_do_zamiany
do
mv $nazwa `echo $nazwa | sed 's/tekst_do_wyciecia//'`
done


to jest ok - w poprzednim poście przedobrzyłem ;)