Você não precisa ler as linhas com for
. Use while
e read
. O problema é que o shell irá dividir os argumentos no espaço em branco, portanto, qualquer espaço na linha do arquivo de log fará com que o loop seja executado em outro momento.
tail -n $LINESTOSEARCH $IPEATERFILTER | while read -r line; do
# do something with "$line"
done
Repita o mesmo padrão para loops internos.