[: Re: [vorbis-dev] [fwd] CVS: ogg123 rocks! vcut no so much so... (from: wayfarer42@postmaster.co.uk)]
Kenneth C. Arnold
kcarnold-vorbisdev at arnoldnet.net
Thu Aug 1 15:51:51 PDT 2002
For some reason this didn't make the list and I got no approval
message... this time I'll force the From to be my subscribed
address. Bug in Monty's new filtering system? Anyway, here goes again.
----- Forwarded message from -----
Date: Thu, 1 Aug 2002 10:24:46 -0400
To: vorbis-dev at xiph.org
Subject: Re: [vorbis-dev] [fwd] CVS: ogg123 rocks! vcut no so much so... (from: wayfarer42 at postmaster.co.uk)
Message-ID: <20020801142446.GA11307 at arnoldnet.net>
References: <Pine.GSO.4.33.0208011238430.21715-100000 at techst02.technion.ac.il>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
protocol="application/pgp-signature"; boundary="+QahgC5+KEYLbs62"
Content-Disposition: inline
In-Reply-To: <Pine.GSO.4.33.0208011238430.21715-100000 at techst02.technion.ac.il>
User-Agent: Mutt/1.4i
Status: RO
On Thu, Aug 01, 2002 at 12:41:52PM +0300, Beni Cherniavksy wrote:
> As Segher once pointed out, unix tools need no playlist support:
> ogg123 `cat playlist` does the job (unless you spaces in file names, I wonder
> why bash has no split-by-lines command substitution variant...). Using
> ls, find, vorbiscomment instead of cat you can have dynamic playlists windows
> users don't even dream of...
[...]
> That would be broken, it would mean the -@ treats all rememaining arguments
> as playlists. ogg123 `for f in *.m3u; do echo -@ $f; done` will produce the
> needed command line. But in the spirit of Segher's idea, ogg123 `cat *.m3u`
> should work (modulo spaces, again) and ogg123 -@ <(cat *.m3u) is good too
> (bash has this nifty temporal named pipe feature, don't know for other shells).
[...]
> Again, ogg123 `ls *.ogg` or ogg123 `find -name '*.ogg' | sort` should do.
> "A program should do one thing and do it well."
Ah, the wonder of Unix. The -print0, -0, and -z below all do the same
thing--end filenames with '\0' instead of '\n' or ' '. The tr command
makes newlines into '\0' for playlists that delimit by newline.
Everything should be standard for any Unix system and should run in
any POSIX-compliant shell (if not, yell at me):
1. All oggs under '.', unsorted:
find . -name '*.ogg' -print0 | xargs -0 ogg123
2. All oggs under '.', sorted by name:
find . -name '*.ogg' -print0 | sort -z | xargs -0 ogg123
3. All oggs under '.', sorted by starting number
find . -name '*.ogg' -print0 | sort -z -n | xargs -0 ogg123
4. Playlist, unsorted (m3u format):
tr "\n" "\0" < ${PLAYLIST} | xargs -0 ogg123
5. Playlist, unsorted (m3u format), oggs only:
grep ogg < ${PLAYLIST} | tr "\n" "\0" | xargs -0 ogg123
6. Playlist, unsorted (pls format):
grep 'File\([0-9]\+\)=' < ${PLAYLIST} | cut -d '=' -f 2- | tr "\n" "\0" | xargs -0 ogg123
There's certainly more, but I think that should satisfy the
cut-and-paste needs of most of the command line Unix Ogg-ers out
there. None of these are fully tested, so you might have to tweak one
thing or another.
Oh, one more:
7. Search for a comment among files in a playlist (rather slow)
(while read filename; do if vorbiscomment -l "$filename" | grep ${SEARCHSTRING}; then echo "$filename"; ogg123 "$filename"; fi; done) < ${PLAYLIST}
<p>
--
Kenneth Arnold <ken at arnoldnet.net>
- "Know thyself."
<p><p>----- End forwarded message -----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: part
Type: application/pgp-signature
Size: 190 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20020801/d3e00e06/part-0001.pgp
More information about the Vorbis-dev
mailing list