Python 比较N个文件的第一列,如果找到匹配项,则打印第一列文件和剩余文件的第二列
我有很多文件,每个文件有两列,我想把这些文件和第一列进行比较。如果在所有文件中找到匹配项,则打印第一个文件和剩余文件的第二列 输入示例 文件1 文件2 文件3 预期产量Python 比较N个文件的第一列,如果找到匹配项,则打印第一列文件和剩余文件的第二列,python,perl,awk,Python,Perl,Awk,我有很多文件,每个文件有两列,我想把这些文件和第一列进行比较。如果在所有文件中找到匹配项,则打印第一个文件和剩余文件的第二列 输入示例 文件1 文件2 文件3 预期产量 great see 2 9 see apple 3 8 tree bee 4 7 我只能处理两个文件。使用 awk 'FNR==NR {a[$1]=$0; next}; $1 in a {print a[$1]}' file1 file2 如果所有
great see 2 9
see apple 3 8
tree bee 4 7
我只能处理两个文件。使用
awk 'FNR==NR {a[$1]=$0; next}; $1 in a {print a[$1]}' file1 file2
如果所有文件中的第一列都包含唯一值,则应执行以下操作:
$ awk '{a[$1]=a[$1]
"\t"$2} ++n[$1]==
3{print $1 a[$1]}' file1 file2 file3
great see 2 9
see apple 3 8
tree bee 4 7
如果所有文件中的第一列都包含唯一值,则应执行以下操作:
$ awk '{a[$1]=a[$1]
"\t"$2} ++n[$1]==
3{print $1 a[$1]}' file1 file2 file3
great see 2 9
see apple 3 8
tree bee 4 7
使用:
$join使用:
$join请您尝试以下内容(这也将考虑第一个字段的顺序,它们将以哪个顺序出现,它们将进入输出)
awk'
!c[$1]++{
d[++计数]=$1
}
{
a[$1]++
b[$1]=(b[$1]?b[$1]OFS:)$NF
}
结束{
对于(i=1;i请尝试以下内容(这也将考虑第一个字段的顺序,它们将在输出中出现的顺序)
awk'
!c[$1]++{
d[++计数]=$1
}
{
a[$1]++
b[$1]=(b[$1]?b[$1]OFS:)$NF
}
结束{
对于(i=1;i
awk 'FNR==NR {a[$1]=$0; next}; $1 in a {print a[$1]}' file1 file2
$ awk '{a[$1]=a[$1]
"\t"$2} ++n[$1]==
3{print $1 a[$1]}' file1 file2 file3
great see 2 9
see apple 3 8
tree bee 4 7
$ join <(sort file1) <(sort file2) | join - <(sort file3)
great see 2 9
see apple 3 8
tree bee 4 7
awk '
!c[$1]++{
d[++count]=$1
}
{
a[$1]++
b[$1]=(b[$1]?b[$1] OFS:"")$NF
}
END{
for(i=1;i<=count;i++){
if(a[d[i]]==3){
print d[i],b[d[i]]
}
}
}
' file1 file2 file3 | column -t