Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129032
  • 博文数量: 22
  • 博客积分: 1533
  • 博客等级: 上尉
  • 技术积分: 225
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-30 11:09
文章分类

全部博文(22)

文章存档

2011年(1)

2010年(7)

2008年(14)

我的朋友

分类:

2010-10-04 20:35:08

一 、sort

缺省情况下,域间的间隔为一个空格或一系列空格。(排序时不区分大小写)

1. sort ha.txt  将第一域作为第一关键字、第二域作为第二关键字...从小到大进行排序
2. sort -r ha.txt   逆序排序(从大到小)
3. sort -c ha.txt   判断文件是否分类
4. sort -t: ha.txt  指定分隔符为:
5. sort -u ha.txt   唯一性,删除重复的行
6. 指定比较域
sort -k2 ha.txt   指定第二域
sort -k2n ha.txt  将第二域看成是数值而非字符串进行排序
sort -k2 -k4 ha.txt  第二域为第一关键字,第四域为第二关键字
  
   如果指定一个域, 则排序的键值会自该域开始一直到行的结尾。
7. 逗号 sort -k4,4 ha.txt
   这里规定键值从第四域的起始处开始到第四域的结尾处。
8. 点号 sort -k2.4,5.2 ha.txt
   表示: 键值从第四域的第4个字符开始, 直到第五个字段的第2个字符。
9. -m  合并两个分类文件
10. -o  存储sort结果到某个文件
11. -b  使用域进行分类时, 忽略第一个空格

二、uniq

从一个文本文件中删除连续的重复行,类似于sort -u 但有区别: sort -u 删除文件中所有的重复行;uniq 删除连续的重复行。
所以uniq一般是对已排序的文件进行操作,即先sort再uniq 。

1. -u  显示每行,但重复的行只显示一次
2. -d  只显示有重复的行,且重复的行显示一次
3. -c  打印每行出现的次数
4. -f2 从第2域开始比较行是否相同
三、join

将两个分类文本文件的行连接在一起,默认使用第1个文件的第1域和第2个文件的第1域进行匹配,但可以指定。 文件中的域通常用空格或TAB分隔。(一些系统要求使用join时文件的域要少于20, 如果域大于20, 应使用DBMS系统)

1. -t  后跟文件域间的分隔符
2. 选择性连接  用来表示要显示的文件域
-o 1.3,2.4  表示只显示文件1的第3域和文件2的第4域
3. 指定匹配域
-j1 3 -j2 4  表示将文件1的第3域和文件2的第4域进行匹配
4. -a1(或-a2)
增加显示文件1(或文件2)的不匹配行, 默认只显示匹配的行 

四、cut

从标准输入或文本文件中剪切域或字符。

1. -d  后跟文件域间的分隔符
2. -c  指定剪切字符数
-c 1-5,7  剪切第1到第5个字符和第7个字符
3. -f  指定剪切域
-c 1-5,7  剪切第1到第5域和第7个域

五、paste

按行将不同文件行放在一起,缺省情况下,使用空格或TAB分隔。

1. -d  后跟文件域间的分隔符
2. -s  将每个文件合并成行,而不是按行粘贴
3.  -  每一个( -)表示从标准输入中读入一次数据,并且用空格或TAB作间隔符
六、split

按行数将大文件分割成小文件。

split -output_file-size input_filename [output_filename]

output_file-size指的是被分割出来的子文件的行数(最后一个可以小于这个值)。若指定了output_filename 则分割的子文件名为 output_filename[aa]到output_filename[zz], 若没有指定, 则子文件名为 x[aa]到 x[zz] 。 

阅读(2882) | 评论(0) | 转发(0) |
0

上一篇:shell小结

下一篇:宏定义

给主人留下些什么吧!~~