Дан файл "Document1.txt", содержащий
cn = Смит Джейн batty.cow, ou = ou1_value, ou = oun_value, o = o_value, c = c_value
cn = Marley Bob reggae.boy, ou = ou1_value, ou = oun_value, o = o_value, c = c_value
cn = Клинтон Дж. Билл, бывший президент, ou = ou1_value, ou = oun_value, o = o_value, c = c_value
вы можете сделать
cat Document1.txt | sed -e "s/^cn=.* \([A-Za-z0-9._]*\),ou=.*/\1/p"
который тебя достает
batty.cow
reggae.boy
ex.president
с использованием tr для перевода символа конца строки
cat Document1.txt | sed -n "s/^cn=.* \([A-Za-z0-9._]*\),ou=.*/\1/p" | tr '\n' ','
производит
batty.cow, reggae.boy, ex.president,
вам нужно иметь дело с последней запятой
но если вы хотите это в базе данных, скажите, например, oracle, скрипт, содержащий:
#!/bin/bash
doc=$1
cat ${doc} | sed -e "s/^cn=.* \([A-Za-z0-9._]*\),ou=.*/\1/p" | while read username
do
sqlplus -s username/password@instance <<+++ insert into mytable (user_name) values ('${username}'\;)
exit
+++
done
N.B.
A-Za-z0-9._ в выражении sed - это все типы символов, которые вы ожидаете в имени пользователя - вам, возможно, придется поиграть с этим.
Предостережение - я не проверял последний бит со вставкой базы данных в него!