- 论坛徽章:
- 0
|
#函数目的,在目标文件中,将指定字段根据对应表,在目标文件最后一列增加对应值
文件gh2bm.txt 是工号和部门对应表表,文件均使用|分割
目的:把文件FILE_TMP中第19列是工号,根据工号对应表,在最后一列上增加部门名称,找不到或者工号为空(NUll),就不增加
baokan_gh_bm_sd()
{
FILE_TMP=$1
for line in `cat /app/webroot/baokan/gh2bm.txt `
do
gh=`echo $line|cut -d '|' -f1`
bm=`echo $line|cut -d '|' -f2`
awk -F '|' -v a=$gh -v b=$bm '{if ( $19 =='a' ) {printf("%s|%s\n",$0,b)} else {printf("%s\n",$0)} }' ${FILE_TMP} > ${FILE_TMP}_$$.tmp
mv ${FILE_TMP}_$$.tmp ${FILE_TMP}
done
}
#end of baokan_gh_bm
现在的问题是,如果工号为空,按理说条件 19 =='a' 应该不成立,但是实际上不能得到目的,实际效果是增加了很多部门值,非常奇怪
其次,如果没有找到,需要在最后一列上增机一个"|",如何表达? |
|