十:又来捉迷藏?内容处理

通过之前所说的搜索命令,我们可以轻松的定位到所需文件的位置,结合重定向,我们可以查看文件的内容,那么接下来,就该定位文件内容中我们需要的部分了(其实有了重定向,我们能够查找、过滤的内容就不限于文件的内容了,应该是针对某个流内容的查看),起码,操作之前我们可以先查看一下要处理的内容

查看文件内容,或者说,查看标准输入的内容:cat
之前提到过,cat是连接到一个文件,并把文件的内容输出输出屏幕,如果不指定文件,那么cat会等待键盘的输入。
cat [文件名 …],cat可以同时打开多个文件并将内容拼接在一起展示
示例:有两个文本文件,内容分别如下


现在使用cat同时打开他们


*注意命令里的通配符,他总会以顺序的方式去匹配
cat有一个缺点就是,他会一次加载所有的内容,而且不能分页查看,所以cat就适合查看那些比较简短的内容,查看大量内容用cat并不方便。

less和more
没错,这是两个命令,都是用来查看内容的命令,他们用起来更像是电子书查看器,用法和cat类似。可以简单的理解为less是more的增强版,more会一次加载所有内容,支持向后分页查看;less不会一次加载所有内容,只会加载当前查看页面的内容,并且支持前后分页查看。

head和tail
虽然less和more提供的分页查看已经能够足够方便了,但是为了方便,还有其他的途径

查看文件开始的部分:head
就如同命令本身含义一样,“头”,查看开始的一部分,默认会打印前世行的内容,如果指定了多个文件,那么会依次打印每个文件的头内容。
示例:head someText*


查看文件结尾的部分:tail
与head相对,tail会默认打印最后十行的内容,但是tail有一个选项可以让我们持续的观察某个文件的变化,这在我们观察日志文件的时候非常有用
示例:tail -f logfile
键入该命令,logfile文件的内容会保持在屏幕上,最新的内容也会不断出现在屏幕上,这个过程会一直持续到你按下Ctrl+C为止。
好了,常用的内容查看命令交代好了,下面就需要对内容进行简单的处理
通过管道线,我们可以将一个命令的标准输出可以输送到另一个命令的标准输入,接下来,我们通过管道线,将多个命令组合在一起,变成一个过滤器,来获取我们所需的内容。

查看内容的概要:wc
这个命令比较好记,嗯…wc可以帮助我们查看一个内容的行数,字数,和字节数
示例:wc someText*

多个文件的情况下会添加一个统计信息

查看内容的概要:sort
sort命令会排序指定标准输入的内容,默认会按照字母升序的顺序来排列内容,我们查看一下/bin目录下的命令,然后把他们排序输出


查看/过滤重复的内容:uniq
他是unique的缩写,通常,我们组合起来使用
示例:ls /bin /usr/bin|sort|uniq -d|less,我们可以查看一下那些命令是两个目录下共有的

看起来共有的命令还不少

打印匹配的文本:最酷grep
默认情况下,grep会打印包含给定信息的行
示例:ls /bin|grep app

常用选项,“-i”:忽略大小写,“-v”:查询不匹配的行,“-x”:只查询完全匹配的行

上面的这些命令单独使用的机会很少,组合在一起成为一个内容过滤器更有意义,就像这样
ls /bin|sort|uniq|grep zip
至此,我相信你对内容的处理已经有了一个大概的认识,尤其是这些常用命令

posted on 2015-06-29 15:49 都较瘦 阅读(104) 评论(0)  编辑  收藏 所属分类: Linux


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

公告

博客定位:囿于目前的水平,博客定位在记录自己的学习心得和随手的练习

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜