#linux #windows #powershell #active_directory
Есть текстовый файл: "CN=Username Alibabaev,OU=?????? ????????????,OU=???ep. ????????,OU=??? \"???????? ??????\",DC=domain,DC=ru" "CN=SUsername DAlibabaev,OU=?????? ????????????,OU=???ep. ????????,OU=??? \"???????? ??????\",DC=domain,DC=ru" "CN=Supeman Batman,OU=??,OU=22 ????????,DC=domain,DC=ru" "CN=Sergio Amanol,OU=??,OU=22 ????????,DC=domain,DC=ru" "CN=username,CN=Users,DC=domain,DC=ru" Нужно удалить то что идёт после "CN=User Suser, на всех строках. Как можно это сделать?
Ответы
Ответ 1
На PowerShell тоже элементарно: cat filename.txt | %{$_.split(',')[0]} Если нужно получить только имена пользователей без CN=, то так: cat filename.txt | %{$_.split('=,')[1]} cat - это алиас для Get-Content, % - алиас для Foreach-Object (для обработки каждой строки).Ответ 2
В linux задача решается с помощью awk элеметарно (при условии, что в CN нет символа запятой) cat filename.txt | awk -F, '{ print $1; }' -F, - опция awk задающая разделитель (в данном случае ,, по умолчанию - пробел или группа пробельных символов), потом выводим первое поле. Проблемы возникнут при создании пользователя с именем Василий, Алибабаевич Поскольку powershell совсем не знаю, на виндах бы решил средствами python или perl, благо устанавливаются совсем просто. В целом, проблема запятой в имени тоже решается несложно, если нужно напишу скрипт на perl, там буквально пара-тройка строк будет.
Комментариев нет:
Отправить комментарий