Linux Shell(三)

从结构化文本文件中提取数据工具

Shell脚本真正好用的地方是:当咱们想修改脚本让它作点不同的事,例如插入由key:jobtilte文件而来的工做职称时,只须要修改最后的管道。排序

join -t: $PERSON /etc/passwd.job-title |开发

    join -t: - $OFFICE |it

        join -t: - $TELEPHONE |awk

            cut -d: -f 2- |变量

                sort -t: -k1,1 -k3,3 -k4,4 |sed

                    awk -F: '{ printf("%-39s\t%-23s\t%s\t%s\n", $1,$2,$3,$4) }'程序

针对Web的结构型数据专栏

 

单词列表数据

曾经有个趣闻,是说,1983到1987年之间,贝尔实验室的研究专员某某写了篇专栏《Programming Pearls》。专栏中有篇文章下的转帖这么写到:写一个文字处理程序,找出n个出现最频繁的单词,并在输出结果的列表上加入它们出现的次数,按照次数由大到小排序。

后来一位资深的研究员提供了一个6个步骤UNIX解决方案,仅需进分钟便能开发完成。这个程序阐明了UNIX工具程序的处理方式是强大的:将复杂的问题切分红数个较简单的部分,简单到你已经知道这个部分该怎么处理。

示例:

单词出现频率过滤器:

#! /bin/sh

tr -cs A-Za-z\' '\n' |                          将非字母字符置换成换行符号

    tr A-Z a-z |                                   全部大写字母转为小写

        sort |                                        由小而大排序单词

            uniq -c |                               去除重复,并显示其计数

                sort -k1,1nr -k2 |             计数有大而小排序后,再按照单词由小而大排序

                    sed ${1:-25}q               显示前n行(默认为25)

 

专一下一讲哦,下节讲什么?让少良告诉大家吧

啊,对,讲讲变量、判断和重复动做

相关文章
相关标签/搜索