Frage

Ich bin immer noch neue Art von allgemein RegEx. Ich versuche, die Namen aus einem Feld abzurufen, damit ich sie zur weiteren Verwendung (mit Pentaho Data Integration / Kessel für die Datenextraktion) aufspalten. Hier ist ein Beispiel für die Zeichenfolge mir gegeben habe:

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

Ich möchte das folgende Format haben zurückgegeben:

Name One;Name Two;Name Three

Kessel verwendet Java Regular Expressions.

War es hilfreich?

Lösung

Das klingt wie Sie wollen Ersatz & Replace auf einem regex basiert. Wie zu tun richtig, dass auf Ihrer Sprache abhängt. Aber mit sed würde ich es tun, wie folgt:

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'

Wenn Sie beabsichtigen, es zu spalten später sowieso, wollen Sie wahrscheinlich nur die Namen übereinstimmen und bringt sie eine Schleife im. Beispielcode in 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";
}

Andere Tipps

vorausgesetzt, Sie es in datei.txt haben:

sed -e  's/\/OU=Site\/O=Domain//g' -e 's/CN=//g' file.txt
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top