Anfang einer Datei bis zu einer bestimmten Stelle löschen

Maximilian Wilhelm max at rfc2324.org
Sun Apr 1 18:08:03 CEST 2007


Am Sunday, den  1 April hub Maximilian Wilhelm folgendes in die Tasten:

Nochmal Hi!

> > Ich habe hier einen ganzen Sack an OGG Dateien, die einen ID3 Header
> > haben. Das macht irgendwie keinen Sinn und führt dazu, dass mein
> > MP3-player sie nicht richtig erkennt.

> > Händisch geht das löschen sehr gut per vi und dem commando "d/OggS".
> > Das ist allerdings für eine ganze Musiksammlung ein bisschen aufwendig,
> > daher würde ich es gerne scripten.
> > sed geht nicht so einfach, da der ID3-Header aus mehreren Zeilen
> > besteht, aber in mitten einer Zeile aufhört.
> > Leider sind sie ID3-Header auch unterschiedlich groß, dass man nicht
> > einfach einen festen Block abschneiden kann.

> > Hat jemand den passenden Einzeiler für mich. Oder eine andere Idee.

> $ man vim
> |        -c {command}
> |                    {command}  will  be  executed after the first file has been
> |                    read.  {command} is interpreted as an Ex command.   If  the
> |                    {command}  contains  spaces  it  must be enclosed in double
> |                    quotes (this depends on the shell that is used).   Example:
> |                    Vim "+set si" main.c
> |                    Note: You can use up to 10 "+" or "-c" commands.

> Wie wars damit? (Ungetestet!)
> find $BASE_DIR -name \*.ogg -exec vim -c "..." {} \;

Das war natuerlich nur fast gut.
So is besser:

 vim -c "s/foo/bar/" -c "wq" $file

Ergo duerfte Dich dann
 find $BASE_DIR -name \*.ogg -exec vim -c 'd/OggS' -c 'wq' {} \;
gluecklich machen.

Ciao
Max
-- 
	Follow the white penguin.



More information about the Linux mailing list