- 论坛徽章:
- 0
|
比如第一个文本a.txt ,格式如下|USRID|NAME|LANG|
第二个文本b.txt ,格式如下|USRID|STATUS|LEVEL|
怎样把USDID一样的行拼成新行输出到一个文件,不匹配的不输出?
我写了一个SHELL发现速度太慢,请高手指教.
if [ -f ok.log ];then
rm ok.log
fi
while read LINE
do
USRID=`echo $LINE|cut -d"|" -f1`
OWNBCHCOD=`echo $LINE|cut -d"|" -f3`
PARBCHCOD=`echo $LINE|cut -d"|" -f4`
USG=`echo $LINE|cut -d"|" -f5`
ETY=`echo $LINE|cut -d"|" -f6`
LEV=`echo $LINE|cut -d"|" -f7`
REL=`echo $LINE|cut -d"|" -f8`
awk -F"|" '{if($1==USRID) {printf("%s%s|%s|%s|%s|%s|%s|\n",$0,OWNBCHCOD,PARBCHCOD,USG,ETY,LEV,REL)} }' USRID=$USRID OWNBCHCOD=$OWNBCHCOD PARBCHCOD=$PARB
CHCOD USG=$USG ETY=$ETY LEV=$LEV REL=$REL b.txt>>ok.log
done<a.txt |
|