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
[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
相关文章推荐
- Shell文件的排序、合并和分割
- 第五章 shell学习之文件的排序、合并和分割
- shell:文件的排序、合并和分割
- shell基础11:文件分类、合并和分割(sort,uniq,join,cut,paste,split)
- Linux文件的合并、排序和分割
- “Linux文件的合并、排序和分割” 之 paste 命令
- 文件的排序、合并和分割
- “Linux文件的合并、排序和分割” 之 sort 命令详解
- “Linux文件的合并、排序和分割” 之 tr 命令
- java:大数据文件写入,读取,分割,排序,合并
- “Linux文件的合并、排序和分割” 之命令整合
- 【shell命令】拆分、合并、排序、比较文件
- 用java实现大文件分割、排序、合并
- java:大数据文件写入,读取,分割,排序,合并
- shell基础11:文件分类、合并和分割(sort,uniq,join,cut,paste,split)
- 文件的合并排序与文件分割
- “Linux文件的合并、排序和分割” 之 join 命令
- Linux文件的合并、排序和分割
- shell基础11:文件分类、合并和分割(sort,uniq,join,cut,paste,split)
- Linux Shell编程第5章——文件的排序、合并和分割