[shell练习]——sort|uniq|join|paste|cut|split练习题

一、使用vim同时编辑两个文件name1.txt name2.txt

# cat name1
myname1 alvin1
myname2 alvin2
myname3 alvin3
myname4 alvin4
# cat name2
myname1 old 100
myname2 old 101
myname3 old 102
cccccccccccccccc
cccccccccccccccc

 (1)、请将2个文件内容处理。 处理效果如下:
myname1 alvin1 old 100
myname2 alvin2 old 101
myname3 alvin3 old 102

# join name1 name2
myname1 alvin1 old 100
myname2 alvin2 old 101
myname3 alvin3 old 102

 
(2)、请处理后内容如下--》请写出答案
myname3 alvin3 old 102
myname2 alvin2 old 101
myname1 alvin1 old 100
cccccccccccccccc

# join -a 2 name1.txt name2.txt |uniq|sort -r
myname3 alvin3 old 102
myname2 alvin2 old 101
myname1 alvin1 old 100
cccccccccccccccc

 
(3)、请处理后内容如下 请写出答案
myname4 alvin4
myname3 alvin3 old 102
myname2 alvin2 old 101
myname1 alvin1 old 100

# join -a 1 name1.txt name2.txt |sort -r
myname4 alvin4
myname3 alvin3 old 102
myname2 alvin2 old 101
myname1 alvin1 old 100

 
(4)、部分连接域匹配,连接匹配效果如下:
alvin1 100
alvin2 101
alvin3 102

# join -o 1.2 2.3 name1 name2
alvin1 100
alvin2 101
alvin3 102

 
(5)、请结合连接和切割域,连接和切割后效果如下:
alvin1 old 100
alvin2 old 101
alvin3 old 102
alvin4

# join -a1 -o 1.2 2.2 2.3 name1 name2
alvin1 old 100
alvin2 old 101
alvin3 old 102
alvin4 

 
(6)、请切割name1.txt文本域,切割后效果如下:
myname1
myname2
myname3
myname4

# cut -d" " -f1 name1
myname1
myname2
myname3
myname4

 
(7)、综合处理后的文本name1.txt和name2.txt显示如下:
myname1 alvin1=myname1 old 100
myname2 alvin2=myname2 old 101
myname3 alvin3=myname3 old 102
myname4 alvin4=

# paste -d= name1.txt name2.txt |sed 's/c//g'|sed '$d'
myname1 alvin1=myname1 old 100
myname2 alvin2=myname2 old 101
myname3 alvin3=myname3 old 102
myname4 alvin4=

 
(8)、综合处理文本name1显示如下:
myname1 alvin1 myname2 alvin2
myname3 alvin3 myname4 alvin4

# cat name1 |paste - -
myname1 alvin1 myname2 alvin2
myname3 alvin3 myname4 alvin4 


(9)、合并文件内容如下:
myname1 alvin1 myname1 old 100
myname2 alvin2 myname2 old 101
myname3 alvin3 myname3 old 102
myname4 alvin4 cccccccccccccccc
cccccccccccccccc

# paste -d"\t" name1.txt name2.txt
myname1 alvin1 myname1 old 100
myname2 alvin2 myname2 old 101
myname3 alvin3 myname3 old 102
myname4 alvin4 cccccccccccccccc
cccccccccccccccc

 
(10)、将name1.txt里面4行分别分割成2个文件,每个文件2行

# split -2 name1
# ls
name1 xaa xab
# cat xaa
myname1 alvin1
myname2 alvin2
# cat xab
myname3 alvin3
myname4 alvin4

 

一、编辑一个文档内容如下:

1:aaaaaa=:aaazzz:10
2:eeeeee=:cc:7
4:dddddd=:sdfsfsd:8
5:bbbbbb=:name:5
3:cccccc=:data:6
testtest
testtest
ccccccc
ccccccc

(1)请通过数字正向排序

# sort -n 1.txt 

 
(2)请通过数字逆向排序

# sort -n -r 1.txt 

 
(3)请第二列的方式正向排序

# sort -t":" -k 2 1.txt 

 

 

(4)请第二列的方式逆向排序

# sort -t":" -k 2 -r 1.txt 

 
(5)请根据最后一列的数字正向排序.并且去掉重复内容

# cat 1.txt |sort -t":" -k 4 -n |uniq

 

(6)请根据最后一列的数字反向排序。并且去掉重复内容

# cat 1.txt |sort -t":" -k 4 -n -r |uniq

 
(7)只显示不重复行

# cat 1.txt |uniq -u

 
(8)只显示有重复数据行

# cat 1.txt |uniq -d

 
(9)打印每一重复行出现的次数

# cat 1.txt |uniq -c

 


posted @ 2016-07-22 11:45  Jelly_lyj  阅读(112)  评论(0编辑  收藏  举报