Changing the behaviour of ls, possibly via a script

Luke Davis ldavis at shellworld.net
Fri Aug 13 21:46:11 UTC 2004


If you use my version, replace "$*" with "$@".
My version also does not handle spaces in file names, although it could be 
adapted to do so.

Tim: why did you skip $2 in the awk version?

On Fri, 13 Aug 2004, Tim Chase wrote:

> Lorenzo,
>
> Sed and/or awk are great tools for this sort of thing, and you don't have to 
> know much about them to get this to work (especially as I'm handing them to 
> you on a cut-n-paste platter [grins]).  The following 2-line scriptlet should 
> do the trick:
>
> #!/bin/sh
> ls -l $@ |awk '/^/{printf "%-20s%s %s %s\n", $9 $10 $11 $12, $1, $3, $4;}'
>
> Just paste it into something like "myls" in your path and "chmod u+x myls" 
> the file to make it executable.  You can adjust the width of the first column 
> (currently set to 20) by changing that number in the script.  It currently 
> handles up to 3 spaces in your file name, assuming there aren't more than one 
> consecutive space.
>
> Alternatively, if you prefer to use Sed, you can do the same sort of thing 
> with this two-liner
>
> #!/bin/sh
> ls -l $@ |sed 
> "s/\(\S*\)\s*\S*\s*\(\S*\s*\S*\)\s*\S*\s*\S*\s*\S*\s*\S*\s*\(.*\)/\3\t\1\2/g"
>
> The sed version is a bit more convoluted, but handles filenames with an 
> arbitrary number of spaces.  However, it doesn't nicely columnize things.  If 
> you're reading linearly, it shouldn't make a bit of difference.  If, however, 
> you're scanning by column, the awk version may be more useful as long as you 
> don't have lots of arbitrary spaces in your file names.
>
> Both should allow you to pass parameters as well, so you can filter the 
> filespec down to just what you want.
>
> Best wishes,
>
> -tim
>
> PS:  those are both two-liners...the first line is the shell-specifier, and 
> the second line is all one line, no matter how badly Mozilla-mail bungles it 
> and tries to make it wrap.
>
> PPS:  You may also have to hard-code the path to "/bin/ls" in there, as some 
> distros attempt to alias "ls" to their colorized versions, and funky stuff 
> can happen if you use that.  The sed version should handle that pretty well, 
> but the awk version does funny stuff.
>
>
>
>
>
> _______________________________________________
> Blinux-list mailing list
> Blinux-list at redhat.com
> https://www.redhat.com/mailman/listinfo/blinux-list
>





More information about the Blinux-list mailing list