Вы можете попробовать что-то вроде этого:
4.1.10(4)-release$ cat infile
chethan RA
Ramesh RA
Sachin RA
Gundaa DI
dravid DI
Suresh SE
4.1.10(4)-release$ awk '{
> f = $2 ".txt"
> print > f
> }' infile
4.1.10(4)-release$ head *txt
==> DI.txt <==
Gundaa DI
dravid DI
==> RA.txt <==
chethan RA
Ramesh RA
Sachin RA
==> SE.txt <==
Suresh SE
Учтите, что некоторые реализации awk могут открывать ограниченное количество файлов одновременно.Если это так, вам понадобится больше кода, примерно так:
[исправлено, см. Комментарии ниже]
awk '{
if (f) close(f)
f = $2 ".txt"
print >> f
}' infile
Последнее будет гораздо менее эффективным.