Похоже, ваши данные используют пробел в качестве разделителя.
Давайте преобразуем ваш пример текста в файл, чтобы у нас было что проверить.
filename txt temp;
options parmcards=txt;
parmcards4;
*91,87,95 abc@xyz.com test hudpiwaHUOV0
97,,92% bmno[aej0i34hmbtgkoersw934bnrtui9sdobn vnbud9rw0aq598vnfjipa
njuio9rpep0snhtui9es000
from="mjerrt_thpian@wedoo.com"
fjsui123,1,1 0 ;
;;;;
Теперь мы можем прочитать файл и разобрать его в отдельные "слова".
data parse ;
infile txt dlm=' ' length=llen column=ccol ;
lineno+1;
do wordno=1 by 1 until(ccol>llen);
length word $200 ;
input word @ ;
output;
end;
run;
Результаты:
Obs lineno wordno word
1 1 1 *91,87,95
2 1 2 abc@xyz.com
3 1 3 test
4 1 4 hudpiwaHUOV0
5 2 1 97,,92%
6 2 2 bmno[aej0i34hmbtgkoersw934bnrtui9sdobn
7 2 3 vnbud9rw0aq598vnfjipa
8 3 1 njuio9rpep0snhtui9es000
9 4 1 from="mjerrt_thpian@wedoo.com"
10 5 1 fjsui123,1,1
11 5 2 0
12 5 3 ;
Если вы добавите опцию DSD в оператор INFILE, вы получите больше слов, так как смежные (или первые пробелы будут обозначать пустое слово.