当我使用命令对 file.txt > file2.txt 中的记录进行交叉乘积时:
join file1.txt{,} -j999 > file2.txt
我得到 file1.txt 中的每条记录以及 file1.txt 中的所有记录,例如:
样本数据集
r1
r2
r3
我明白了
r1 r1
r1 r2
r1 r3
r2 r1
r2 r2
r2 r3
r3 r1
r3 r2
r3 r3
我不想要 r1 r1、r2 r2、记录等等...
如果在做交叉产品时它可能是正确的,我如何获得预期的结果?如果没有,如何在处理 join file1.txt{,} -j 999 后删除记录
我用另一个 awk 命令尝试了这个:
if($i!=$(i+12)){print $0;} and
if($1!=$13){print $0;}
因为我有每条记录的序列号 1,2,3,... 我有 file2.txt 为:
c1 c13 --> column 1 and column 13
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
3 1
3 2
3 3
3 4
我只是比较序列号,如果它们不相等,则打印这些记录。但我得到了不希望的结果,例如:
1 2
1 3
1 4
2 3
2 4
3 4
您可以看到它跳过了 $1!=$13 之前的所有记录。所以缺少行,例如:
2 1
3 1
3 2
它应该只跳过模式 r1 r1, r2 r2,... 中的记录
更新
第 1 列和第 13 列是序列号。