Страницы

Поиск по вопросам

понедельник, 3 февраля 2020 г.

Как удалить данные до конца строки после запятой?

#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, там буквально пара-тройка строк будет.

Комментариев нет:

Отправить комментарий