我有两个文件,需要用linux 命令提取两个文件中,输出 分别有的行 和 相同的行,求助如何写命令?

这是两个文件:http://pan.baidu.com/share/link?shareid=439533&uk=1947415729http://pan.baidu.c... 这是两个文件:http://pan.baidu.com/share/link?shareid=439533&uk=1947415729
http://pan.baidu.com/share/link?shareid=439534&uk=1947415729
展开
 我来答
cndonger
2013-05-02 · TA获得超过801个赞
知道小有建树答主
回答量:1425
采纳率:0%
帮助的人:938万
展开全部
你算问对人咯。使用linux的comm

如果是WIN下的文件,注意先转换换行符号!!!

先对文件进行排序去重复:sort filename1 |uniq>filename1-sorted
然后对第2个文件也排序去重复并管道使用comm 找出符合你要求的:
共同拥有的行:sort filename2|uniq|comm -12 - filename1-sorted> 共同拥有的
文件 filename1-sorted独有的: sort filename2|uniq|comm -13 - filename1-sorted>filename1-sorted独有

文件 filename2独有的: sort filename2|uniq|comm -23 - filename1-sorted>filename2独有。
赶紧给分,哈哈!

用comm相对比较简单,也可以用 awk做:
共同拥有的:

gakw 'ARGIND==1{a[$1]=$1} ARGIND>1{if(a[$1]!="") print $0}' file1 file2>共同拥有
gakw 'ARGIND==1{a[$1]=$1} ARGIND>1{if(a[$1]=="") print $0}' file1 file2>file2独有
gakw 'ARGIND==1{a[$1]=$1} ARGIND>1{if(a[$1]=="") print $0}' file2 file1>file1独有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
栩箭
推荐于2017-11-25 · TA获得超过5310个赞
知道大有可为答主
回答量:3036
采纳率:0%
帮助的人:1652万
展开全部
a,b两个文件,
a中有,b中无的行:

cat a b b | sort | uniq -u
a,b中都有的行:
cat a b | sort | uniq -d
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Fred_Yuan
2013-05-02
知道答主
回答量:13
采纳率:0%
帮助的人:11.1万
展开全部
用diff命令啊,吧diff的输出结果分开就行了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式