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

Re: sed soll eine bestimmte anzahl von Zeichen löschen...



Michelle Konzack <linux4michelle@freenet.de> writes:

[...]

>   ______ ( stdin ) _____________________________________________________
>  / 
> |  -rwxr-xr-x    1 root          360 Sat May 15 17:35:21 2004 mutt.postinst
> |  -rwxr-xr-x    1 root          135 Sat May 15 17:35:18 2004 libidn11.postinst
> |  -rwxr-xr-x    1 root          395 Sat May 15 17:35:18 2004 libncursesw5.postinst
>
> <snip>
>
> |  -rwxr-xr-x    1 root         5675 Sat May 03 20:31:07 2003 dpkg.postinst
> |  -rwxr-xr-x    1 root          321 Sat May 03 20:31:04 2003 diff.postinst
> |  -rwxr-xr-x    1 root          306 Sat May 03 20:31:03 2003 bash.postinst
> |  -rwxr-xr-x    1 root         3976 Sat May 03 20:31:02 2003 base-files.postinst
> |  -rwxr-xr-x    1 root         2252 Sat May 03 20:31:02 2003 base-passwd.postinst
>  \______________________________________________________________________
>
> Na gut, das sieht gut aus...
> Nun will ich alles vom beginn bis zum "LEERZEICHEN" vor dem Monatstag 
> entfernen... 

Da du vermutlich ein GNU sed hast, kannst du mit der Option -r die
"extented regualar expressions" einschalten, womit:

 ... | sed -r 's/^.{34}//' 

funktioniert.

Allerdings ist dies nicht optimal, da sich die Ausgabe von ls von
Rechner zu Rechner unterscheiden kann.  Bei mir liefert diess z.B.:

...
     173 2004-04-17 09:11 xsane.postinst
     316 2004-03-20 11:50 xscreensaver-gl.postinst
    1477 2004-03-20 11:50 xscreensaver.postinst
   24179 2004-03-20 11:49 xserver-common.postinst
...

Hier zwei Alternativen:

$ find . -name \*.postinst -printf "%a %f\n"

$ stat --format "%z %n" *.postinst

Die Zeitformate unterscheiden sich (wie auch die zugehörigen
Formatkennzeichen, ist Unix nicht toll ;-), aber ansonsten könnte es
hilfreich sein.

        Torsten

BTW: Beispiele funktionieren vermutlich auch nur mit den GNU-Versionen
der Tools.



Reply to: