请教这两个文件如何合并? 内容分别如下: a1: DAD|15.0| JAB|2.0| JAH|55.0| b1: DAD|773.0| GGC|2.0| JAB|224.0| 如何把它们合在一起内容如下的: DAD 15.0 773.0 GGC 0 2.0 JAB 2.0 224.0 JAH 55.0 0 cat jj.sh cat a1 b1 |awk -F"|" '{print }'|sort|uniq >c1 while read line do num1=`grep "$line" a1|awk -F"|" '{print }'` if [ -z "$num1" ]; then num1=0 fi num2=`grep "$line" b1|awk -F"|" '{print }'` if [ -z "$num2" ] ; then num2=0 fi echo $line"\t"$num1"\t"$num2 done <c1 测试通过 简化版 cat a1 b1 |awk -F"|" '{print }'|sort|uniq >c1 while read line do num1=`grep "$line" a1|awk -F"|" '{print }'` [ -z "$num1" ] && num1=0 num2=`grep "$line" b1|awk -F"|" '{print }'` [ -z "$num2" ] && num2=0 echo $line"\t"$num1"\t"$num2 done <c1 我的方法:假设文件已排序 join -t"|" -a1 -a2 a1 b1 DAD|15.0| |773.0| GGC|2.0| JAB|2.0| |224.0|0 JAH|55.0| join -t"|" a1 b1 DAD|15.0| |773.0| JAB|2.0| |224.0| join -t"|" -v1 a1 b1 JAH|55.0|
join -t"|" -v2 a1 b1 GGC|2.0| 可将后面三个的输出再用awk整理一下就可满足题目要求
------ 两个文件a1,b1 内容分别如下: a1: 1 2 3 b1: a b c 如何把它们合在一起内容如下的: 1 a 2 b 3 c ------------- paste -d"\t" a1 a2
|