- 论坛徽章:
- 0
|
写了这样一个shell,
根据第二个文件修改第一个文件,文件中的记录大致如下
152622|王世民|5.6100|100000.00|0.00|1140.70|
如果第一个字段相同,就用第二个文件中的记录,第二个文件中没有对应记录,就用第一个的
一般情况下没有问题,可是有这种情况,第二个中文字段可能有半个中文字符,这样就是乱码了!
152619|何俊 ? |5.6100|100000.00|0.00|1140.70|1140.70|
shell执行的时候就会在第九行报错,会把这样的一行拆成了两行处理,可是怎么才能进行错误处理呢?我在11行后加 echo $?,并没有错误返回值呀
请问怎么处理呀,很急,多谢了
- >bjt2
- for x in `cat file1`
- do
- bz=0
- for y in `cat file2`
- do
- jj1=`echo $x|cut -f1 -d"|"`
- jj2=`echo $y|cut -f1 -d"|"`
- if [ $jj1 -eq $jj2 ]
- then bz=1;break;
- fi
- done
- if [ $bz -eq 0 ]
- then echo $x >>bjt2
- else echo $y >>bjt2
- fi
- done
复制代码 |
|