微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux bash脚本把A和B文件中有相同ID的B文件的内容输出到文件C

bash脚本把A和B文件中有相同ID的B文件内容输出文件C.


Aid文件
ID001.1
ID032.1
ID090.10

Bfilt文件
XX XX XXX ID001.1 XXX
999999999999999999999999999999999999999
XX XX XXX ID055.1 XXX
6666666666666666666666666666666666666
XX XX XXX ID032.1 XXX
333333333333333333333333333333333333333

要得到Cnew文件
XX XX XXX ID001.1 XXX
999999999999999999999999999999999999999
XX XX XXX ID032.1 XXX
333333333333333333333333333333333333333

 

awk 'NR==FNR{a[FNR]=$0} NR>FNR{for(i in a)if($0~a[i]){print;getline;print}}' Aid Bfilt >Cnew

 

## 输出匹配id的行,不输出其下一行

awk 'NR==FNR{a[FNR]=$0} NR>FNR{for(i in a)if($0~a[i]){print;}}' Aid Bfilt

 注意:

1 当文件很庞大时,这个十分慢;用 extractfastabyid 处理。

2 这个匹配是包含关系, AAA会匹配AAA1,AAAAA1等。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。