Question

Je suis encore un peu nouveau pour RegEx en général. Je suis en train de récupérer les noms d'un champ pour que je puisse les séparer pour une utilisation ultérieure (en utilisant l'intégration / bouilloire Pentaho Data pour l'extraction de données). Voici un exemple de la chaîne on me donne:

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

Je voudrais avoir le format suivant retourné:

Name One;Name Two;Name Three

Kettle utilise Java expressions régulières.

Était-ce utile?

La solution

Cela sonne comme vous voulez remplacer et remplaçons basé sur une expression régulière. Comment faire correctement cela dépend de votre langue. Mais avec sed je le ferais comme ceci:

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'

Si vous avez l'intention de le diviser plus tard de toute façon, vous voulez probablement correspondre juste les noms et les retourner im une boucle. Exemple de code dans 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";
}

Autres conseils

en supposant que vous avez dans fichier.txt:

sed -e  's/\/OU=Site\/O=Domain//g' -e 's/CN=//g' file.txt
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top