我有一个包含4列的文件,如果第3列在文件2中,我需要从file1中删除
示例:
File1中:
https://docs.google.com/document/d/FILE_ID/export?format=doc
文件2:
14769,marty.------@googlemail.com,c076a7b6a52857ddf2f2e60d71dda6bf,49
14770,maryfi-------@googlemail.com,23fc2887a3a8248ddea570b5700b1708,49
14771,n.s------@googlemail.com,e504a6617f375ce04f4e51f1ec66dd93,49
14772,paula------@googlemail.com,f918f5b8df1d6285892d003c2fb9e3cf,49
14773,pkec.------@googlemail.com,4ca2c5d670f324c31a20854873bf63ac,49
14774,squi-------@googlemail.com,d26a0296a361b79afd98ede1af918f6d,49
所以结果会像这样
d26a0296a361b79afd98ede1af918f6d
4ca2c5d670f324c31a20854873bf63ac
我试过这个
14769,marty.------@googlemail.com,c076a7b6a52857ddf2f2e60d71dda6bf,49
14770,maryfi-------@googlemail.com,23fc2887a3a8248ddea570b5700b1708,49
14771,n.s------@googlemail.com,e504a6617f375ce04f4e51f1ec66dd93,49
14772,paula------@googlemail.com,f918f5b8df1d6285892d003c2fb9e3cf,49
但没有工作
答案 0 :(得分:0)
我无法添加评论,但代表不够;但是我已经用gawk
尝试了你的代码,它确实删除了你想要的两行。你没有得到制表符分隔输出的原因是OFS只有在重建$ 0后才会生效,所以你可以通过简单的赋值来强制执行此操作,例如$ 1 = $ 1和你的OFS =&#39; \ t&#39;:< / p>
{a[$1]=$3 ;next} !($3 in a) {$1=$1; print}' OFS='\t' file2 file1
结果:
14769 marty.------@googlemail.com c076a7b6a52857ddf2f2e60d71dda6bf 49
14770 maryfi-------@googlemail.com 23fc2887a3a8248ddea570b5700b1708 49
14771 n.s------@googlemail.com e504a6617f375ce04f4e51f1ec66dd93 49
14772 paula------@googlemail.com f918f5b8df1d6285892d003c2fb9e3cf 49