当前位置: 技术问答>linux和unix
如何用shell实现依文件1某个域到文件2查找满足条件记录并统计记录数后修改文件1
来源: 互联网 发布时间:2015-04-30
本文导语: 文件1: |sec01|sec02|sec03| . . .(n条) 文件2: |sec1|sec2| . . .(m条) 说明: (1)按sec02到文件2中找sec2与之匹配的记录并统计记录数rec_num 再把rec_num修改到sec03域上; (2)"|"是用作分隔符。 望有人...
文件1:
|sec01|sec02|sec03|
.
.
.(n条)
文件2:
|sec1|sec2|
.
.
.(m条)
说明:
(1)按sec02到文件2中找sec2与之匹配的记录并统计记录数rec_num
再把rec_num修改到sec03域上;
(2)"|"是用作分隔符。
望有人能帮忙给出具体的实现,本人感激不尽,一定给分的。
|sec01|sec02|sec03|
.
.
.(n条)
文件2:
|sec1|sec2|
.
.
.(m条)
说明:
(1)按sec02到文件2中找sec2与之匹配的记录并统计记录数rec_num
再把rec_num修改到sec03域上;
(2)"|"是用作分隔符。
望有人能帮忙给出具体的实现,本人感激不尽,一定给分的。
|
#!/bin/sh
#file1文件1
#file2文件2
#tmpf1,tmpf2临时文件
cut -d'|' -f3 file2 >tmpf2
>tmpf1
while read LINE
do
rec_num=0
REC2=`echo $LINE | cut -d'|' -f3`
NEWLINE=`echo $LINE | cut -d'|' -f1-3`
rec_num=`grep $REC2 tmpf2|wc -l`
NEWLINE=${NEWLINE}'|'$rec_num
echo $NEWLINE >>tmpf1
done
#file1文件1
#file2文件2
#tmpf1,tmpf2临时文件
cut -d'|' -f3 file2 >tmpf2
>tmpf1
while read LINE
do
rec_num=0
REC2=`echo $LINE | cut -d'|' -f3`
NEWLINE=`echo $LINE | cut -d'|' -f1-3`
rec_num=`grep $REC2 tmpf2|wc -l`
NEWLINE=${NEWLINE}'|'$rec_num
echo $NEWLINE >>tmpf1
done