linux中如何提取文件中特定的行? 5
linux系统下两个文件file1和file2,其中file2是file1的一部分,如何提取file1中有而在file2中没有的部分?谢谢!...
linux系统下两个文件file1和file2,其中file2是file1的一部分,如何提取file1中有而在file2中没有的部分?谢谢!
展开
1个回答
展开全部
cat file1 file2 |sort|uniq -c |grep -v " 2 "|cut -d" " -f 2-
如果你的文枝蠢拆件每行都是维档腔一的可以这样处理.
grep -v 后面的 " 2 " 可以按着你的实际情况前面多加几个猛枣空格.
如果你的文枝蠢拆件每行都是维档腔一的可以这样处理.
grep -v 后面的 " 2 " 可以按着你的实际情况前面多加几个猛枣空格.
追问
是每行唯一,能在解释详细一些吗?谢谢!
追答
我每个命令解释一下吧.
cat file1 file2 这样就是把两个文件的内容都显示出来.
你说过 file2是file1的一个子集.
这样的结果就是. 如果是 file1里的行.都只有一行,不会重复.
file2和file1里都有的行.会有两行,有重复.
sort 排序
uniq -c 是把重复的行去掉,只保留一行. 同时在行的前面显示出这个行出现过几次.
grep -v " 2 " 这个过滤条件写得不太好.我一时想不出怎么写.其实可以在前面加几个空格.
就是前面显示出现几次 那部分有 2字样(两行) 的去掉.
这样保留的内容就是你想号的行. 不过前面都有一个 1 .字样.
cut -d " " -f 2- 以 空隔为分隔符. 从第二个字段开始保留. 之前的不要.再显示出来.
也许就是你要的内容了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询