首页 > 代码库 > 文本过滤命令
文本过滤命令
文本编辑
文本过滤
grep
grep命令是Linux系统中的一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
-------------------------
正则表达式分为两类
基本正则表达式
^ 行首锚定符 grep "^bin" /etc/shells
$ 行尾锚定符 grep "bin$" /etc/shells
. (点 号)任意单个字符
* 匹配其前任意次(0,1,或多次)
[] 匹配一组字符中的任一个
[x-y] 匹配指定范围内的一个字符
[^] 匹配不在指定范围内的字符
\ 用来转移元字符
扩展正则表达式
===================================================================
Linux 系统下 常见的文本编辑命令
sort uniq wc cat tr
sort 是Linux系统中非常常用的一个排序命令
-u 删除重复行
-r 降序排列(默认是升序)
-o 把排序结果输出到原文件中
-n 告诉sort 要以数值来排序
-t <分隔字符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
sort的-t选项和-k选项
如果有一个文件的内容是这样:
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?
幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了。
[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。
参考:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html
uniq
-c 在输出行前面加上每行在输入文件中出现的次数。
-d 仅显示重复行。
-u 仅显示不重复的行
wc
命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出
命令参数:
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息
文本过滤命令