Domanda

Sono ancora un po 'di nuovo da RegEx in generale. Sto cercando di recuperare i nomi da un campo in modo che io possa dividere per un ulteriore uso (usando Pentaho Data Integration / bollitore per l'estrazione dei dati). Ecco un esempio della stringa che sto dato:

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

mi piacerebbe avere il seguente formato restituito:

Name One;Name Two;Name Three

Kettle utilizza Java espressioni regolari.

È stato utile?

Soluzione

sostituto e che suona come si desidera replace basa su una regex. Come fare correttamente che dipende dalla vostra lingua. Ma con sed lo farei in questo modo:

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'

Se avete intenzione di dividere in un secondo momento in ogni caso, probabilmente si vuole abbinare solo i nomi e restituire loro im un ciclo. Esempio di codice 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";
}

Altri suggerimenti

a patto di avere in file.txt:

sed -e  's/\/OU=Site\/O=Domain//g' -e 's/CN=//g' file.txt
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top