我有两个这样的文件:
文件1:
AppTheme
文件2:
1 1987969 1987970 . 7.078307 33
1 2066715 2066716 . 7.426998 34
1 2066774 2066775 . 6.851217 33
我想获取文件1中第3列的每个值,并使用类似(1 HANASAI gelliu 1186928 1441229
1 FEBRUCA sepaca 3455487 3608150
)的条件在文件2中搜索,然后在新文件中打印整行文件2。
还有一件事也很重要:要在file_2中搜索file_1中的每个变量,column_1中的相应值应该在两个文件中都相同,例如对于file_1的'1987970',column_1中对应的值为'1',因此在file_2中,第一列中的值也应为'1'。
由于
答案 0 :(得分:2)
编辑:仅考虑匹配" class"第1栏中的值
$ cat msh.awk
# Save all the pairs of class and third-column values from file1
NR==FNR { a[$1,$3]; next }
# For each line of file2, if there exists a third-column-file1
# value between the values of columns 4 and 5 in a record of the
# same class, print the line
{
for (cv in a) {
split(cv, class_val, SUBSEP);
c = class_val[1];
v = class_val[2];
if (c == $1 && v >= $4 && v <= $5) {
print
break
}
}
}
$ cat file1
1 1987969 1987970 . 7.078307 33
1 2066715 2066716 . 7.426998 34
1 2066774 1200000 . 6.851217 33
1 2066774 2066775 . 6.851217 33
$ cat file2
1 HANASAI gelliu 1186928 1441229
1 FEBRUCA sepaca 3455487 3608150
$ awk -f msh.awk file1 file2
1 HANASAI gelliu 1186928 1441229