当前位置: 技术问答>linux和unix
求多文件连接为表格的方法
来源: 互联网 发布时间:2016-09-22
本文导语: 文件1:account 包括 id name 1,ABC 2,BCD 3,CDE 4,DEF 文件2:planA 为文件名 包括id 1 2 文件3: planB 为文件名 包括id 3 4 文件4:priceA 包括id 和 price 1,10 2,15 文件5:priceB 包括id 和 price 3,20 4,30 现在想连接成1个表格输出 1,ABC...
文件1:account 包括 id name
1,ABC
2,BCD
3,CDE
4,DEF
文件2:planA 为文件名 包括id
1
2
文件3: planB 为文件名 包括id
3
4
文件4:priceA 包括id 和 price
1,10
2,15
文件5:priceB 包括id 和 price
3,20
4,30
现在想连接成1个表格输出
1,ABC planA 10
2,BCD planA 15
3,CDE planB 20
4,DEF planB 30
应该如何写 感谢
|
for line in `cat account`
do
id=`echo $line | cut -d "," -f 1`
filename=`grep -l ^"$id" plan*`
price=`grep ^"$id" price* | cut -d "," -f 2`
result=$line" "$filename" "$price
echo $result
done
do
id=`echo $line | cut -d "," -f 1`
filename=`grep -l ^"$id" plan*`
price=`grep ^"$id" price* | cut -d "," -f 2`
result=$line" "$filename" "$price
echo $result
done
|
这样也可以:把循环的方式改一下,循环里面的处理不变。
cat account | while read line
do
if [ -z "$line" ]
then
continue;
fi
id=`echo $line | cut -d "," -f 1`
filename=`grep -l ^"$id" plan*`
price=`grep ^"$id" price* | cut -d "," -f 2`
result=$line" "$filename" "$price
echo $result
done
cat account | while read line
do
if [ -z "$line" ]
then
continue;
fi
id=`echo $line | cut -d "," -f 1`
filename=`grep -l ^"$id" plan*`
price=`grep ^"$id" price* | cut -d "," -f 2`
result=$line" "$filename" "$price
echo $result
done
|
如果没有第三列,可以使用join命令。
join -t, a pra; join -t, a prb
join -t, a pra; join -t, a prb