[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: script gesucht



Am Montag, 25. Oktober 2004 16:26 schrieb Matthias Houdek:
> Am Sonntag, 24. Oktober 2004 17:58 schrieb Andreas Pakulat:
> > On 24.Oct 2004 - 15:28:01, Matthias Houdek wrote:
> > > Am Sonntag, 24. Oktober 2004 13:41 schrieb Andreas Pakulat:
> > > > On 24.Oct 2004 - 10:49:20, Matthias Houdek wrote:
> > > > Hast du das getestet? Das klappt naemlich nicht. Dabei wird
> > > > eine leere Datei erzeugt!
> > >
> > > Klappt bei mir wunderbar. Hab's gerade noch mal in die
> > > Kommandozeile kopiert - und es klappte wieder.
> >
> > In einer bash? In sid? Bei mir nicht. Man moege micht
> > erleuchten:
>
> Bei mir läuft sarge. Dürfte aber egal sein.

_Kann_ laufen, muss aber nicht. Der Ansatz ist gefährlich (hängt 
AFAIK vor allem davon ab, wie groß die Buffer für Pipes usw. im 
System sind und ob der Filedescriptor für den read() noch offen 
ist, wenn der für write() aufgemacht wird).

Aber natürlich geht sowas mit der bash auch sauber (1 Zeile):
find . -type f -printf "tail +2 \"%p\" >\"%p.neu\" && mv -i 
\"%p.neu\" \"%p\"\n" | sh

Einziges Ungemach: eine evtl. existierende Datei <Dateiname.neu> 
würde dazu führen, dass mv nachfragt, ob sie überschrieben werden 
soll (was man verhindern kann, wenn man statt %p.neu einen 
definitiv nicht existierenden konstanten Dateinamen - z. B. in /tmp 
- vergibt).

Und hier mal ein kleines Testszenario:
jan@jack:~/tmp/t> mkdir a b c
jan@jack:~/tmp/t> echo -e "Zeile1\nZeile2\nZeile3" >f
jan@jack:~/tmp/t> cp f "a/f leer"
jan@jack:~/tmp/t> cp f "b/f     tab"
jan@jack:~/tmp/t> cp f "c/ü b e l"
jan@jack:~/tmp/t> for i in `seq 1 1000`; do echo "zeile$i" 
>>gross;done
jan@jack:~/tmp/t> find . -type f -printf "tail +2 \"%p\" >\"%p.neu\" 
&& mv \"%p.neu\" \"%p\"\n" | sh
jan@jack:~/tmp/t> find . -type f -exec head \-n 1 {} \;
Zeile2
Zeile2
Zeile2
Zeile2
zeile2

Jan

P.S.: Matthias - David liest hier nicht mit, falsche Liste ;-)

-- 
Linux-Quickies: http://www.jan-trippler.de
PingoS: http://www.pingos.org



Reply to: