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

bash脚本把A和B文件中有相同ID的B文件的内容输出到文件C.A文件:ID001.1ID032.1ID090.10B文件:XXXXXXXID001.1XXX999999... bash脚本把A和B文件中有相同ID的B文件的内容输出到文件C.
A文件:
ID001.1
ID032.1
ID090.10

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

要得到C文件:
XX XX XXX ID001.1 XXX
999999999999999999999999999999999999999
XX XX XXX ID032.1 XXX
333333333333333333333333333333333333333
展开
 我来答
百度网友5311d79
2013-09-03 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3235万
展开全部
#!/bin/bash
awk 'NR==FNR{a[FNR]=$0} NR>FNR{for(i in a)if($0~a[i]){print;getline;print}' A B >C

NR==FNR表示当前在处理文件A,读取文件A将内容放入数组a。

NR>FNR表示当前在处理文件B。

更多追问追答
追问
awk: cmd. line:1: NR==FNR{a[FNR]=$0} NR>FNR{for(i in a)if($0~a[i]){print;getline;print}
awk: cmd. line:1: ^ unexpected newline or end of string
其中错误 ^ 指到最后一个单引号的位置。
追答

代码搬上来的时候最后少了个大括号,再来:

awk 'NR==FNR{a[FNR]=$0} NR>FNR{for(i in a)if($0~a[i]){print;getline;print}}' A B >C

我这边执行通过,跟你要求的输出一样。 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式