[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