Portál AbcLinuxu, 14. května 2025 00:54
mplayer -shuffle `tagger --files rpg`
Představoval jsem si to tak, že z každého z řádků vrácených taggerem se stane jeden parametr pro MPlayer. Ten parametry pochopí jako soubory, zamíchá je a přehraje. Bohužel tohle nefunguje v případě, že cesta k nějakému souboru obsahuje mezery. Z takové cesty se stane několik parametrů, které udávají neexistující soubory.
Napadlo mě obalit každý řádek uvozovkami. Tak by byly cesty k souborům v uvozovkách a nevzniklo by několik parametrů.
mplayer `tagger -f rpg | xargs -isoubor echo \"soubor\"`
Jenže to taky nefunguje. Tady se cesta obsahující mezeru rozdělí na několik parametrů úplně stejně jako předtím. Navíc první část má na začátku " a poslední " na konci.
Nevíte někdo, jak zařídit, aby se z každého řádku vyrobil opravdu jen jeden parametr, i když bude obsahovat mezery? Předem díky za odpovědi.
Nebylo by jednodušší použít xargs
přímo na mplayer
:
tagger -f rpg | xargs mplayer -shuffle
tagger -f rpg | xargs -isoubor echo \"soubor\" | xargs mplayer -shuffle
Omlouvám se, psal jsem to z hlavy. Takže druhý pokus:
tagger -f rpg | tr "\n" "\0" | xargs -0 mplayer -shuffle
Pokud by se dal příkaz tagger
přesvědčit, aby odděloval jména nulovým znakem, obejdete se bez tr
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.