Re: Changing the behaviour of ls, possibly via a script

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

 



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@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/blinux-list



_______________________________________________

Blinux-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/blinux-list

[Index of Archives]     [Linux Speakup]     [Fedora]     [Linux Kernel]     [Yosemite News]     [Big List of Linux Books]