O problema que você está tendo é com o
for unitcaseno in 'cat /pims/nigel/UNLOAD-DB/xaa'
estrutura. Isso dividirá o arquivo em palavras , não em linhas. É por isso que você vê String = 349702
na saída; você está vendo apenas a primeira palavra e não a linha inteira.
Em vez disso, considere um loop semelhante a
while read unitcaseno
do
....
done < /pims/nigel/UNLOAD-DB/xaa
Agora você está processando uma linha por vez
String = 349702| 1|
Unitno = 349702:Caseno = 1
Note que você tem outros problemas; por exemplo, espaço em branco extra antes do Caseno
. Mas isso deve levar você ao próximo passo!