基础11:文件分类、合并和分割(sort,uniq,join,cut,paste,split)

红薯 发布于 2009/05/06 11:25
阅读 646
收藏 0

MySQL连接为什么挂死了?别踩坑!>>>

shell基础1:文件安全与权限 
http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger

附:Linux的用户和用户组管理 
http://bbs.chinaunix.net/forum/viewtopic.php?t=438660&highlight=wingger

shell基础二:查找技巧,find及xargs的使用
http://bbs.chinaunix.net/forum/viewtopic.php?t=441883&highlight=wingger
 
shell基础三和四:后台(crontab,at,&,nohup)及(*,?,[]等) 
http://bbs.chinaunix.net/forum/viewtopic.php?t=442596&highlight=wingger

shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等) 
http://bbs.chinaunix.net/forum/viewtopic.php?t=444209&highlight=wingger

shell基础六七:命令执行顺序(||及&&,{}及())和正则表? 
http://bbs.chinaunix.net/forum/viewtopic.php?t=445229&highlight=wingger

shell基础八:文本过滤工具(grep) 
http://bbs.chinaunix.net/forum/viewtopic.php?t=446683&highlight=wingger

http://bbs.chinaunix.net/forum/viewtopic.php?t=448687&highlight=wingger
shell基础九:awk 

http://bbs.chinaunix.net/forum/viewtopic.php?t=452942&highlight=wingger
shell基础十:sed 

http://bbs.chinaunix.net/forum/viewtopic.php?t=457730&highlight=wingger
基础11:文件分类、合并和分割(sort,uniq,join,cut,paste,split) 
 
shell基础十二:tr 
http://bbs.chinaunix.net/forum/viewtopic.php?t=459099&highlight=wingger


引用:" 实用的分类(s o r t)操作。
" uniq。
" join。
" cut。
" paste。
" split。



sort用法
s o r t命令选项很长,下面仅介绍各种选项。

选项
s o r t命令的一般格式为:

sort -cmu -o output_file [other options] +pos1 +pos2 input_files


下面简要介绍一下s o r t的参数:
引用: -c 测试文件是否已经分类。
-m 合并两个分类文件。
-u 删除所有复制行。
-o 存储s o r t结果的输出文件名。



其他选项有:
引用: -b 使用域进行分类时,忽略第一个空格。
-n 指定分类是域上的数字分类。
-t 域分隔符;用非空格或t a b键分隔域。
-r 对分类次序或比较求逆。
+n n为域号。使用此域号开始分类。
n n为域号。在分类比较时忽略此域,一般与+ n一起使用。
post1 传递到m,n。m为域号,n为开始分类字符数;例如4,6意即以第5域分类,从第7个字符开始。



保存输出
- o选项保存分类结果,然而也可以使用重定向方法保存。下面例子保存结果到r e s u l t s . o u t:
$sort video.txt >results.out


启动方式
缺省情况下, s o r t认为一个空格或一系列空格为分隔符。要加入其他方式分隔,使用- t选s o r t执行时,先查看是否为域分隔设置了- t选项,如果设置了,则使用它来将记录分隔成域0、域1等等
;如果未设置,用空格代替。缺省时s o r t将整个行排序,指定域号的情况例外。

下面是文件v i d e o . t x t的清单,包含了上个季度家电商场的租金情况。各域为:(1)名称,(2)供货区代码,(3)本季度租金,(4)本年租金。域分隔符为冒号。为此对此例需使用‘ - t’选项。文件如下:
[sam@chenwy sam]$ cat video.txt 


Boys in Company C:HK:192:2192 
Alien:HK:119:1982 
The Hill:KL:63:2972 
Aliens:HK:532:4892 
Star Wars:HK:301:4102 
A Few Good Men:KL:445:5851 
Toy Story:HK:239:3972


sort对域的参照方式
关于s o r t的一个重要事实是它参照第一个域作为域0,域1是第二个域,等等。s o r t也可以使用整行作为分类依据。

文件是否已分类
怎样分辨文件是否已分类?如果只有3 0行,看看就知道了,但如果是4 0 0行呢,使用s o r t - c通知s o r t文件是否按某种顺序分类。

[sam@Linux_chenwy sam]$ sort -c video.txt


sort: video.txt:2: disorder: Alien:HK:119:1982

结果显示未分类,

现在将之分类,再试一次:
[sam@Linux_chenwy sam]$ sort -t:  video.txt >video2.txt


[sam@Linux_chenwy sam]$ sort -c video2.txt
[sam@Linux_chenwy sam]$

返回提示符表明已分类。然而如果测试成功,返回一个信息行会更好。



加载中
返回顶部
顶部