首先复习两个ls的两个常用参数
ls -l 显示文件目录下的详细信息
ls -ut 将文件目录下的文件按照访问时间由小到大排
ls -r 将文件目录下排好序的文件反序,一般与-ut联用
接下来学习十五学时的内容
这一学时主要讲的是文本过滤方面的知识,本学时将学习Shell脚本中最常用的文本过滤命令,如下:
head
tail
grep
sort
uniq
tr
======================================================================================================
head 命令
head -n file
ls -lut 按最近访问时间排序
ls -lut|head -5 显示出当前目录下最近访问的五个文件
================================================
tail 命令
tail -n file
ls -lut|tail -n
tail -f file 可以显示正在被读写的文件,head没有这个功能
=================================================
grep word file
grep word file1 file2 file3
grep 区分大小写
grep -i word file 不区分大小写
grep 还可一从输入中匹配
who|grep word
grep -v word file 列出不包含word的行
grep -n word file 不仅输出匹配行数据,而且输出行号
grep -l word * 显示当前目录下包含word的文件
=================================================
wc的常用命令
wc -c filename 显示一个文件的字节数
wc -m filename 显示一个文件的字符数
wc -l filename 显示一个文件的行数
wc -L filename 显示一个文件中的最长行的长度
wc -w filename 显示一个文件中单词的个数
=================================================
如果统计特殊单词的个数,那么光靠wc就不行了
tr sort uniq 的用法
tr 'set1' 'set2'
tr会将set1中的字符集转换为set2中的字符集
tr -s 'set1' 压缩字符,当遇见几个连续的set1的时候,只用一个代替
如果set1包含多个字符,那么这几个字符都替换
sort命令
要统计一个单词出现了多少次,需要使用sort命令将文件中的单词排序。
最简单的方法,sort命令为输入的每一行进行排序。
不过如果按照每一行排序,先要将格式改为每个单词占用一行的格式。
sort -u 在排序过程中删除掉重复的单词
uniq命令
uniq finename 对于重复的行只单独显示一行
注意uniq比较的时候,只是将连续行相同的去掉,不连续的无法去除
如果要统计单词出现的次数,先对单词进行一下排序,然后uniq -c filename
为数字排序
sort原来排序的时候首先按照单词的字典序排序,现在如果想要针对每个单词出现的
次数排序
sort -rn -r(reverse) -n(numeric)
这种排序方法针对的是数字出现在第一列,经常如下使用
uniq -c filename|sort -rn
如果数字不是出现在第一列,那么就要做一定的修改了
sort -k start end files
start 是关键字开始处,end 是关键字结束处
如果start就是文件最后一列,那么可以省去end
tr命令中字符分类的使用
tr '[:punct:]' ' ' 去掉符号