override protection 644 (yes/no)?

Don't use a loop, this is sufficient:

#!/bin/ksh

tr '|' '\n' < $1 > $2