Spacja i znak *

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
Inquistor
Beginner
Posty: 122
Rejestracja: 25 września 2007, 20:48

Spacja i znak *

Post autor: Inquistor »

Tworzę sobie skrypcik do tworzenia tagów id3 i trafiłem na mały problem.
Mianowicie kiedy chce użyć * aby basename przeleciał przez wszystkie nazwy otrzymuje komunikat:

Kod: Zaznacz cały

$ basename *
basename: nadmiarowy argument `nazwa piosenki ze spacjami.mp3'
Spróbuj `basename --help' dla uzyskania informacji.
Generalnie wiadomo, w czasie kiedy * zostaje zastąpiona nazwą piosenki nie zostają wstawione znaczki \ na końcu wyrazów i program ma sporo argumentów. I moje pytanie:

Jak tu teraz to obejść tj. żeby za pomocą gwiazdki można było jednak wypisać wszystkie nazwy łącznie te ze spacjami.

Tak myślałem nad czymś w tym stylu: basename " * " ale oczywiście to nie ma prawa działac :)

EDIT:

Posiedziałem chwilkę i zrobiłem coś takiego dla wzoru:

01-pendulum-show_down.mp3

Kod: Zaznacz cały

#!/bin/bash
for file in *.mp3
do
songname=`basename "$file" .mp3 | awk '{print $3}' FS=- | tr _ ' '`
artist=`basename "$file" .mp3 | awk '{print $2}' FS=- | tr _ ' '`
id3ed -s "$songname" -a "$artist"  "$file" -q
done
Nadal jestem ciekaw jakie są inne sposoby rozwiązania tego problemu ;-)
ODPOWIEDZ