
sort 命令可以按照字母或者数字顺序排列字符串,不过如果我们想根据字符串的长度来排序呢?
配合一点点 awk 魔法,就可以达成愿望。建立一个 lsort 文件,内容如下:
首先,awk 把标准输入中每行的前面,都加上这行的长度,然后传给 sort 对长度数字进行排序,最后用 sed 把长度数字删掉。
保存之后,加上可执行标记,就可以拷贝到 /usr/bin 之下,来使用了。
比如,我想看看以 a 开头的最长的单词是哪个,那么输入:
look a 会将所有 a 大头的单词按照字幕顺序显示出来,经过 lsort 的过滤,最后的就是最长的单词了:
评论 (5)
is-Programmer 是一个面向 Linux 爱好者与程序员的 Blog 系统,具有简洁的风格,方便的代码高亮和数学公式插入功能,适合撰写学习笔记和技术文档。
© is-Programmer.com All rights reserved. | Power by Chito 1.1.4 | 沪ICP备07005989号
2008年12月07日 05:30
不错
2008年12月09日 12:56
字符串也可以是数字开头,需要修正一下:)
2008年12月10日 04:39
@ibear: 可以排序数字字符串 :)
2008年12月10日 10:44
数字开头没问题,用 cut -d' ' -f2- 代替后面那个 sed 也可以。
2008年12月24日 21:17
cut确实方便一些