您的位置:首页 > 运维架构 > Shell

shell 文件排序合并和分割

2012-09-28 17:22 351 查看
sort:-n 根据大小排序-k 制定排序的域-c 检查是否排序-m 合并两个文件域-r 逆向排列-t 改变域分隔符-u 去除重复行
[root@localhost app]# sort -t: test.txt ##默认显示文本 -t和:中间没有空格Dell:HongKong:9822:11:TU9Hp:china:1182:91:P111Lianxiang:USA:1232:00:T22Sanxing:USA:7622:9889:Y0009Toshiba:USA:989:22:T0909

[root@localhost app]# sort -t: -k3 test.txt ##显示第三个域 按照首位数字大小排列Hp:china:1182:91:P111Lianxiang:USA:1232:00:T22Sanxing:USA:7622:9889:Y0009Dell:HongKong:9822:11:TU9Toshiba:USA:989:22:T0909
[root@localhost app]# sort -t: -k3n test.txt ##显示第三个域 按照数值大小排列 从小到大排序Toshiba:USA:989:22:T0909Hp:china:1182:91:P111Lianxiang:USA:1232:00:T22Sanxing:USA:7622:9889:Y0009Dell:HongKong:9822:11:TU9
[root@localhost app]# sort -t: -k3nr test.txt ##显示第三个域 按照数值大小排列 从大到小排序Dell:HongKong:9822:11:TU9Sanxing:USA:7622:9889:Y0009Lianxiang:USA:1232:00:T22Hp:china:1182:91:P111Toshiba:USA:989:22:T0909

按照从大到小排序并且把输入到一个新文件里面:sort -t: -k3nr -o new-test.txt test.txt去除排列结果中重复的行: sort -t: -u test.txt检查测试文件是否排序完毕: sort -t: -c test.txt按照第一域排列合并new-test文件合并后test.txt文件中:sort -t: -m new-test.txt test.txt

sort和awk合并使用将文本按照名字来排列[root@localhost app]# cat sort.log wanghubei yangxinzhongguo,china
lihebei cagnzhoueshizhongguo sdsd
sunhunan changshachangde
wanghubei ayangxinzhongguo,china
[root@localhost app]# cat sort.log | awk -v RS="" '{gsub("\n","@");print}' | sort | awk -v ORS="\n\n" '{gsub("@","\n");print}' lihebei cagnzhoueshizhongguo sdsd
sunhunan changshachangde
wanghubei ayangxinzhongguo,china
wanghubei yangxinzhongguo,china
\n 表示换行RS="" 以空格为分隔符gsub("\n","@") 将换行与@进行替换 由于每一段文字有换行 所以需要这一步 不知道什么意思可以把整条命令拆分执行就明白了uniq-c 统计重复行次数-d 只显示重复行-u 不显示重复行
[root@localhost app]# cat shuzi.test 111111112222333311114444######源文件 1111有两行是连续重复,另外一行是隔了两行在重复 注意下面[root@localhost app]# uniq shuzi.test 1111 222233331111 4444#######只去除了连续重复的行但是隔开的没有去掉 用sort -t: -u可以去掉[root@localhost app]# uniq -c shuzi.test 2 11111 22221 33331 11111 4444[root@localhost app]# uniq -d shuzi.test 1111[root@localhost app]# uniq -u shuzi.test 222233331111444本文出自 “柯小某” 博客,请务必保留此出处http://kexl908.blog.51cto.com/605006/1009371
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: