Spacja i znak *
: 15 stycznia 2009, 21:25
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:
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
Nadal jestem ciekaw jakie są inne sposoby rozwiązania tego problemu ;-)
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.
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