Вопрос

Я все еще новичок в целом в целом. Я пытаюсь получить имена из поля, чтобы я мог разделить их для дальнейшего использования (используя интеграцию данных Pentaho данных / чайника для экстракции данных). Вот пример строки, который мне дают:

CN=Name One/OU=Site/O=Domain;CN=Name Two/OU=Site/O=Domain;CN=Name Three/OU=Site/O=Domain

Я хотел бы, чтобы вернулся следующий формат:

Name One;Name Two;Name Three

Чайник использует регулярные выражения Java.

Это было полезно?

Решение

Это звучит так, как вы хотите заменить и заменить на основе Regex. Как правильно сделать это зависит от вашего языка. Но с седов я бы сделал это так:

echo "CN=Name One/OU=Site/O=Domain;CN=Name Two/OU=Site/O=Domain;CN=Name Three/OU=Site/O=Domain" |\
sed 's/CN=\([^\/]*\)[^;]*/\1/g'

Если вы намереваетесь разделить его позже в любом случае, вы, вероятно, хотите просто сопоставить имена и вернуть их IM-петли. Пример кода в Perl:

#!/usr/bin/perl
$line="CN=Name One/OU=Site/O=Domain;CN=Name Two/OU=Site/O=Domain;CN=Name Three/OU=Site/O=Domain";
for $match ($line =~ /CN=([^\/]*)/g ){
  print "Name: $match\n";
}

Другие советы

Предполагая, что у вас есть в файл.txt:

sed -e  's/\/OU=Site\/O=Domain//g' -e 's/CN=//g' file.txt
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top