linux中如何提取文件中特定的行? 5

linux系统下两个文件file1和file2,其中file2是file1的一部分,如何提取file1中有而在file2中没有的部分?谢谢!... linux系统下两个文件file1和file2,其中file2是file1的一部分,如何提取file1中有而在file2中没有的部分?谢谢! 展开
 我来答
zhanzc1
推荐于2017-05-20 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:80.9万
展开全部
cat file1 file2 |sort|uniq -c |grep -v " 2 "|cut -d" " -f 2-

如果你的文枝蠢拆件每行都是维档腔一的可以这样处理.
grep -v 后面的 " 2 " 可以按着你的实际情况前面多加几个猛枣空格.
追问
是每行唯一,能在解释详细一些吗?谢谢!
追答
我每个命令解释一下吧.

cat file1 file2 这样就是把两个文件的内容都显示出来.
你说过 file2是file1的一个子集.

这样的结果就是. 如果是 file1里的行.都只有一行,不会重复.
file2和file1里都有的行.会有两行,有重复.

sort 排序

uniq -c 是把重复的行去掉,只保留一行. 同时在行的前面显示出这个行出现过几次.

grep -v " 2 " 这个过滤条件写得不太好.我一时想不出怎么写.其实可以在前面加几个空格.
就是前面显示出现几次 那部分有 2字样(两行) 的去掉.
这样保留的内容就是你想号的行. 不过前面都有一个 1 .字样.

cut -d " " -f 2- 以 空隔为分隔符. 从第二个字段开始保留. 之前的不要.再显示出来.
也许就是你要的内容了.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式