A nice little script to sort lines from shortest to longest can be handy when you're writing and want to find your big words:
deroff uniq |
% |
---|
Once I used it to sort a list of pathnames:
find |
% |
---|
The script uses awk (33.11) to print each line's length, followed by the original line. Next, sort sorts the lengths numerically (36.5). Then sed (34.24) strips off the lengths and the spaces - and prints the lines:
#! /bin/sh awk 'BEGIN { FS=RS } { print length, $0 }' $* | # Sort the lines numerically sort +0n -1 | # Remove the length and the space and print each line sed 's/^[0-9][0-9]* //'
(Some awks require a semicolon after the first curly bracket - that
is, { FS=RS };
.)
-