Linux脚本功略学习笔记15

18 篇文章 0 订阅

众多处理文本命令的综合应用

(1):统计特定文件中的词频

统计文件中使用单词的频率是一个经常用到的任务,在这里能够应用我们业已习得的文本处理技巧。词频统计的方法有很多种。先来看一个脚本:


运行结果如下:


工作原理:

egrep -o "\b[[:alpha:]]+\b" $filename 只用于输出单词。用-o 选项打印出由换行符分割的匹配字符序列。这样我们就可以在每行总列出一个单词。

\b是单词边界标记符,[:alpha:]是表示字母的字符类。awk命令用来避免对每一个单词进行迭代。因为awk默认会卓航执行{}块中的语句,所以我们就不需要再为同样的事编写循环了。借助关联数组,当执行count[$0]++时,单词计数增加。最后,在END{} 语句块中通过迭代所有的单词,就可以打印出单词及它们各自出现的次数。

(2)按列合并多个文件
很多时候我们需要按列拼接文件,比如要将每一个文件的内容作为单独的一列。而cat命令所实现的拼接通常是按照行来进行的。

这里我们是使用paste命令按列是先拼接,其语法如下:

$ paste file1 file2 file2 file3...
来看例子:



默认的定界符是制表符,也可以用-d明确指定定界符,例如:


(3)打印文件或行中的第n个单词或列

我们可能有一个包含了多列数据的文件,不过只有其中的一小部分能派上用场。例如在以成绩排序的学生列表中,我们希望得到成绩最高的四名学生。来看看如何实现。

处理这种任务最广泛的方法就是借助awk。同样也可以使用cut来实现

(a)用下面的命令打印第5列:

$ awk '{print $5}' filename

(b) 也可以打印多列数据,并在各列间插入指定的字符串.

如果要打印当前目录下各文件的权限和文件名。可以使用下列命令:























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值