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 展开
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 展开
1个回答
展开全部
#!/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
我这边执行通过,跟你要求的输出一样。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询