Linux系统中,有两个文件file1和file2,每个文件的每一行都是#UUID,其中的每一UUID表示一个号。要找出在file1中有而在file2中没有的UUID,使用cat,sort,uniq三个命令如何实现
2010-10-11 15:53
1361 查看
uniq命令的作用:显示唯一的行,对于那些连续重复的行只显示一次!
接下来通过实践实例说明:
[root@stu100 ~]# cat test
boy took bat home
boy took bat home
girl took bat home
dog brought hat home
dog brought hat home
dog brought hat home
看test文件的内容,可以看到其中的连续重复行
[root@stu100 ~]# uniq test
boy took bat home
girl took bat home
dog brought hat home
uniq命令不加任何参数,仅显示连续重复的行一次
[root@stu100 ~]# uniq -c test
2 boy took bat home
1 girl took bat home
3 dog brought hat home
-c 参数显示文件中每行连续出现的次数。
[root@stu100 ~]# uniq -d test
boy took bat home
dog brought hat home
-d选项仅显示文件中连续重复出现的行。
[root@stu100 ~]# uniq -u test
girl took bat home
-u选项显示文件中没有连续出现的行。
[root@stu100 ~]# uniq -f 2 -s 2 test
boy took bat home
忽略每行的前2个字段,忽略第二个空白字符和第三个字段的首字符,结果at home
[root@stu100 ~]# uniq -f 1 test
boy took bat home
dog brought hat home
忽略每行的第一个字段,这样boy ,girl开头的行看起来是连续重复的行。
[linuxboy823@fedora ~]$ cat file1
1
2
3
4
5
6
[linuxboy823@fedora ~]$ cat file2
1
2
3
4
7
8
[linuxboy823@fedora ~]$ sort file1 file2 |uniq -d>file3
1、找出file1中有而file2中没有的qq号码
[linuxboy823@fedora ~]$ sort file1 file3|uniq -u
5
6
2、找出file2中有而file1中没有的qq号码
[linuxboy823@fedora ~]$ sort file2 file3|uniq -u
7
8
3、找出两个文件中都有的号码
[linuxboy823@fedora ~]$ sort file1 file2 |uniq -d
1
2
3
4
接下来通过实践实例说明:
[root@stu100 ~]# cat test
boy took bat home
boy took bat home
girl took bat home
dog brought hat home
dog brought hat home
dog brought hat home
看test文件的内容,可以看到其中的连续重复行
[root@stu100 ~]# uniq test
boy took bat home
girl took bat home
dog brought hat home
uniq命令不加任何参数,仅显示连续重复的行一次
[root@stu100 ~]# uniq -c test
2 boy took bat home
1 girl took bat home
3 dog brought hat home
-c 参数显示文件中每行连续出现的次数。
[root@stu100 ~]# uniq -d test
boy took bat home
dog brought hat home
-d选项仅显示文件中连续重复出现的行。
[root@stu100 ~]# uniq -u test
girl took bat home
-u选项显示文件中没有连续出现的行。
[root@stu100 ~]# uniq -f 2 -s 2 test
boy took bat home
忽略每行的前2个字段,忽略第二个空白字符和第三个字段的首字符,结果at home
[root@stu100 ~]# uniq -f 1 test
boy took bat home
dog brought hat home
忽略每行的第一个字段,这样boy ,girl开头的行看起来是连续重复的行。
[linuxboy823@fedora ~]$ cat file1
1
2
3
4
5
6
[linuxboy823@fedora ~]$ cat file2
1
2
3
4
7
8
[linuxboy823@fedora ~]$ sort file1 file2 |uniq -d>file3
1、找出file1中有而file2中没有的qq号码
[linuxboy823@fedora ~]$ sort file1 file3|uniq -u
5
6
2、找出file2中有而file1中没有的qq号码
[linuxboy823@fedora ~]$ sort file2 file3|uniq -u
7
8
3、找出两个文件中都有的号码
[linuxboy823@fedora ~]$ sort file1 file2 |uniq -d
1
2
3
4
相关文章推荐
- 今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在Win中见过的/r回车符号。由于编辑软件的编码问题,某些IDE的编辑器在编辑完文件之后会自动加上这个^M符号。看起来对我们的源代码没有任何影响,其实并不然,当我们把源代码文件Check In到svn之类
- 将任务4的解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。
- 使用RandomAccessFile和多线程来实现开启三个线程去复制一个文件
- git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树,请实现一个算法,计算git树上任意两点的最近分割点。 (假设git树节点数为n,用邻接矩阵的形式表示git树:字符串数组matrix包含n个字符串,每个字符串由字符'0
- C++第六周任务5:解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优点。
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 在一个Android项目里面有两个可运行文件,如何实现调用方式
- 12个球,外形相同,其中有一个球重量与其余11球不同,如何使用天平尽量少次数的测量找出这个小球且判别它比正常球轻还是重
- 输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。 比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。
- 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。 为了简单起见,我们假设push序列的任意两个整数都是不相等的
- 在linux下,如何使用find命令查看一个目录下包含多少文件
- 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?
- 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?
- log4net中如何将level为DEBUG和ERROR的两级分开存在两个文件之中(使用同一个logger的前提)
- shell中使用sort和uniq实现两文件的并集,交集和差集
- 作业题:输入4个整数,找出其中最大的数。用一个函数来实现. 分别使用结构化方法和函数嵌套的方法。
- 用cat/uniq/sort找出在file1不在file2的行
- 【题目5】如何使用两个栈来实现一个队列
- 牛牛和15朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成26份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地,作为牛牛最好的朋友,你希望牛牛取得的田地价值和尽可能大,你知道这个值最大可以是多少吗? 输入两个整数n和m(1≤n,m≤75)表示田地的大小,接下来n行,每行包括m个0-9之间的数字,表示每块
- 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?