[linux-l] Tausender-Punkte bei ls

Jens Dreger jens.dreger at physik.fu-berlin.de
Fr Apr 30 16:00:21 CEST 2004


On Mon, Apr 26, 2004 at 09:32:11AM +0200, Stefan Bund wrote:
> > Hab grade versucht, ls -l | awk 'irgendwas' zur Ausgabe von Dezimalpunkten zu 
> > bewegen, wird aber schnell kompliziert (und die netten Farben sind weg ;). 
> > Lohnt also nicht.
> 
> Ich kenne awk leider nicht gut genug, aber
> 
> #!/bin/sh
> ls -bl --color=yes "$@" | \
>         perl -pe 'BEGIN{sub td{local($1,$2,$3);($x=$_[0])=~s/([0-9])(?=([0-9]{3})+$)/$1./g;$x}}s/^([^ ]+ +[0-9]+ +.{8}[^ ]* +.{8}[^ ]*) *([0-9]+)(.*)$/$1.sprintf("%15.15s",td($2)).$3/e'

Das ist aber schon ziemlich mit Tauben auf Spatzen geschossen... :)

Hier mal eine billo-version:

  dreger at smart:..belug/ls-td> ls -l|rev|sed -e 's/\([0-9]\{3\}\)/\1./g;'|rev
  total 5.000
  -rw-r--r--    1 dreger   fbedv           0 Apr 30 15:47 1
  -rw-r--r--    1 dreger   fbedv     5.120.000 Apr 30 15:36 a b c d

Okok, die tut nicht das gleiche, ich mir auch klar. Ausserdem wuerde
die auch Tausenderpunkt in die Dateinamen einbauen... Und buendig ist
die size-Spalte jetzt auch nicht mehr. Aber uebersichlichtlicher ist's
schon ;)
 
> als 'ls-wd' funktioniert incl. Syntaxhighlighting.

Naja, da ist jetzt Syntaxhighlighting einfach immer an. Der Grund,
warum es zuerst nicht funktioniert, ist ja der, dass ls das
abschaltet, wenn der output nicht in ein Terminal geht. Aber mit ls-wd
ist dieses Feature jetzt natuerlich auch weg, d.h. man hat ploetzlich
ANSI-Codes in "ls-wd > file".

Gruss,

Jens.



Mehr Informationen über die Mailingliste linux-l