How to obtain the unrar overall progress report?
Patrick O'Callaghan
pocallaghan at gmail.com
Sun Sep 14 17:14:32 UTC 2008
On Sun, 2008-09-14 at 07:05 -0700, Dan Thurman wrote:
> Patrick O'Callaghan wrote:
> >
> > On Sat, 2008-09-13 at 13:09 -0700, Dan Thurman wrote:
> > > # unrar x -ierr -o+ ~dant/Desktop/foo.rar \
> > > | sed -e 's#\([0-9]\+\)[%]$#\1#'
> >
> > As I said, please send the output *without* enabling the 'sed' filter.
> >
> > Hint: use 'head', e.g.:
> >
> > # unrar x -ierr -o+ ~dant/Desktop/foo.rar| head 20 > capture
> >
> # unrar x -ierr -o+ ~dant/Desktop/foo.rar | head 20 > capture
> head: cannot open `20' for reading: No such file or directory
Oops, should be "head -20"
> -rw-r--r-- 1 root root 0 2008-09-14 06:15 capture
>
> # unrar x -ierr -o+ ~dant/Desktop/foo.rar | head -n 20 > capture
> -rw-r--r-- 1 root root 0 2008-09-14 06:20 capture
>
> # unrar x -ierr -o+ ~dant/Desktop/foo.rar 2>&1 | head -n 20 > capture
> =====================================================================
> UNRAR 3.71 beta 1 freeware Copyright (c) 1993-2007 Alexander Roshal
>
>
> Extracting from /home/dant/Desktop/foo.rar
>
> Extracting foo/cd1/Track01.flac ^H^H^H^H 0%^H^H^H^H^H OK
> Extracting foo/cd1/Track02.flac ^H^H^H^H 0%^H^H^H^H 1%^H^H^H^H
> 2%^H^H^H^H 3%^H^H^H^H 4%^H^H^H^H^H OK
The problem is that there are multiple progress numbers for each output
record. That's why the usual filters such as 'sed' are going to have a
hard time of it. You need to capture each number as it comes out and
process it (throwing away the ^H i.e. backspace characters) even though
you haven't seen a newline yet, because by the time you see the newline
the file has finished.
(This is a clear indication that the program was originally written for
a non-Unix environment, since the author just assumes that the progress
is for display on a terminal and not for filtering).
I'm not saying it's impossible, just nasty. You might be better tweaking
the source of unrar to give you more manageable output. You probably
can't distribute the result though (the license is freeware, not free).
poc
More information about the fedora-list
mailing list