Está en la página 1de 7

TEMA

about_Split
DESCRIPCIN BREVE
Explica cmo usar el operador de divisin para dividir una o
varias cadenas en subcadenas.
DESCRIPCIN DETALLADA
El operador de divisin divide una o varias cadenas en subcadenas.
Se pueden cambiar los siguientes elementos de la operacin de divisin:
-- Delimitador. El delimitador predeterminado es un espacio en
blanco, pero se pueden especificar los caracteres, cadenas,
patrones o bloques de script que especifican el delimitador.
-- Nmero mximo de subcadenas. De forma predeterminada, se
devuelven todas las subcadenas. Si se especifica un nmero menor
que el nmero de subcadenas, las subcadenas restantes se
concatenan en la ltima subcadena.
-- Opciones que especifican las condiciones en las que se evala el
delimitador, como SimpleMatch y Multiline.
SINTAXIS
En el diagrama siguiente se muestra la sintaxis del operador -split.
Los nombres de parmetro no aparecen en el comando. Se incluyen
nicamente los valores de parmetro. Los valores deben aparecer en
el orden especificado en el diagrama de la sintaxis.
-Split <Cadena>
<Cadena> -Split <Delimitador>[,<Nmero mximo de subcadenas>[,"<Opciones>"]]
<Cadena> -Split {<Bloque de script>} [,<Nmero mximo de subcadenas>]
En cualquier instruccin de divisin, se puede reemplazar -iSplit
o -cSplit por -split.
Los operadores -iSplit y -split no distinguen maysculas de
minsculas. El operador -cSplit distingue maysculas de minsculas,
lo que significa que se tiene en cuenta el uso de maysculas y minsculas
cuando se aplican las reglas referentes al delimitador.
PARMETROS
<Cadena>
Especifica una o varias cadenas que se van a dividir. Si se
envan varias cadenas, se dividen todas las cadenas aplicando
las mismas reglas de delimitador.
Ejemplo:
-split "rojo amarillo azul verde"
rojo
amarillo
azul
verde

<Delimitador>
Son los caracteres que identifican el final de un subcadena.
El delimitador predeterminado es un espacio en blanco,
incluidos espacios y caracteres no imprimibles, como los de
lnea nueva (`n) y de tabulacin (`t). Cuando se dividen las
cadenas, se omite el delimitador de todas las subcadenas. Ejemplo:
"Apellidos:Nombre:Direccin" -split ":"
Apellidos
Nombre
Direccin
<Nmero mximo de subcadenas>
Especifica el nmero mximo de subcadenas que se van a
devolver. De forma predeterminada, se devuelven todas las
subcadenas divididas por el delimitador. Si hay ms
subcadenas, estas se concatenan en la ltima subcadena. Si
hay menos subcadenas, se devuelven todas las subcadenas. El
valor 0 y los valores negativos devuelven todas las subcadenas.
Si se enva ms de una cadena (matriz de cadenas) al operador
de divisin, se aplica el lmite del nmero mximo de
subcadenas a cada cadena por separado. Ejemplo:
$c = "Mercurio,Venus,Tierra,Marte,Jpiter,Saturno,Urano,Neptuno"
$c -split ",", 5
Mercurio
Venus
Tierra
Marte
Jpiter,Saturno,Urano,Neptuno
<Bloque de script>
Es una expresin que especifica las reglas para aplicar el
delimitador. La expresin debe evaluarse como $true o $false.
El bloque de script debe escribirse entre llaves. Ejemplo:
$c = "Mercurio,Venus,Jpiter,Saturno,Urano,Neptuno" $c
-split {$_ -eq "e" -or $_ -eq "p"}
M
rcurio,V
nus,J
it
r,Saturno,Urano,N
tuno
<Opciones>
El nombre las opciones debe escribirse entre comillas.
Las opciones son vlidas nicamente cuando se usa el parmetro
<Nmero mximo de subcadenas> en la instruccin.
La sintaxis del parmetro Opciones es:
"SimpleMatch [, IgnoreCase]"
"[RegexMatch] [,IgnoreCase] [,CultureInvariant]
[,IgnorePatternWhitespace] [,ExplicitCapture]
[,Singleline | ,Multiline]"

Las opciones SimpleMatch son:


-- SimpleMatch: se usa la comparacin de cadenas simples al
evaluar el delimitador. No se puede usar con RegexMatch.
-- IgnoreCase: fuerza la coincidencia sin distincin entre
maysculas y minsculas, incluso si se ha especificado
el operador -cSplit.
Las opciones RegexMatch son:
-- RegexMatch: se usa la coincidencia de expresiones
regulares para evaluar el delimitador. Este es el
comportamiento predeterminado. No se puede usar con
SimpleMatch.
-- IgnoreCase: fuerza la coincidencia sin distincin entre
maysculas y minsculas, incluso si se ha especificado
el operador -cSplit.
-- CultureInvariant: se omiten las diferencias entre las
referencias culturales de idioma al evaluar el
delimitador. Esta opcin es vlida nicamente con RegexMatch.
-- IgnorePatternWhitespace: se omiten los espacios en
blanco sin carcter de escape y los comentarios marcados
con el signo de nmero (#). Esta opcin es vlida
nicamente con RegexMatch.
-- Multiline: este modo reconoce el inicio y el final de
las lneas y cadenas. Esta opcin es vlida nicamente
con RegexMatch. El valor predeterminado es Singleline.
-- Singleline: este modo reconoce solo el inicio y el final
de las cadenas. Esta opcin es vlida nicamente con
RegexMatch. El valor predeterminado es Singleline.
-- ExplicitCapture: se omiten los grupos de coincidencias
sin nombre de modo que solo se devuelvan en la lista de
resultados los grupos de captura explcita. Esta opcin
es vlida nicamente con RegexMatch.
OPERADORES DE DIVISIN UNARIO y BINARIO
El operador de divisin unario (-split <cadena>) tiene mayor
precedencia que una coma. Como resultado, si se enva una lista
de cadenas delimitadas por comas al operador de divisin unario,
solo se divide la primera cadena (delante de la primera coma).
Para dividir varias cadenas, use el operador de divisin binario
(<cadena> -split <delimitador>). Todas las cadenas se deben
escribir entre parntesis,o bien, almacenar en una variable y,
a continuacin, enviar la variable al operador de divisin.
Considere el ejemplo siguiente:

-split "1 2", "a b"


1
2
a b
"1 2", "a b" -split " "
1
2
a
b
-split ("1 2", "a b")
1
2
a
b
$a = "1 2", "a b"
-split $a
1
2
a
b
EJEMPLOS
La instruccin siguiente divide la cadena en el espacio en blanco.
C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell a distancia"
Windows
PowerShell
2.0
Windows
PowerShell
a
distancia
La instruccin siguiente divide la cadena en cualquier coma.
C:\PS> "Mercurio,Venus,Tierra,Marte,Jpiter,Saturno,Urano,Neptuno" -split
','
Mercurio
Venus
Tierra
Marte
Jpiter
Saturno
Urano
Neptuno
La instruccin siguiente divide la cadena en el patrn "er".
C:\PS>"Mercurio,Venus,Marte,Jpiter,Saturno,Urano,Neptuno" -split 'er'

M
curio,Venus,Marte,Jpit
,Saturno,Urano,Neptuno

La instruccin siguiente realiza una divisin con distincin


entre maysculas y minsculas en la letra "N".
C:\PS> "Mercurio,Venus,Tierra,Marte,Jpiter,Saturno,Urano,Neptuno" -cSplit
'N'
Mercurio,Venus,Tierra,Marte,Jpiter,Saturno,Urano,
eptuno

La instruccin siguiente divide la cadena en la "e" y la "t".


C:\PS> "Mercurio,Venus,Tierra,Jpiter,Saturno,Urano,Neptuno" -split '[et]'
M
rcurio,V
nus,
i
rra,Jpi
r,Sa
urno,Urano,N
p
uno
La instruccin siguiente divide la cadena en la "e" y la "r",
pero limita las subcadenas resultantes a seis subcadenas.
C:\PS> "Mercurio,Venus,Marte,Jpiter,Saturno,Urano,Neptuno" -split '[er]',
6
M
cu
io,V
nus,Ma
te,Jpiter,Saturno,Urano,Neptuno

La instruccin siguiente divide una cadena en tres subcadenas.


C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3
a
b
c,d,e,f,g,h
La instruccin siguiente divide dos cadenas en tres subcadenas.
(El lmite se aplica a cada cadena por separado.)

C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3


a
b
c,d
e
f
g,h
La instruccin siguiente divide cada lnea de la cadena
multilnea intercalada en el cdigo en el primer dgito. Utiliza
la opcin Multiline para reconocer el inicio de cada lnea y cadena.
El 0 representa el valor "devolver todo" del parmetro Nmero
mximo de subcadenas. Se pueden usar opciones, como Multiline,
nicamente cuando se especifica el valor del parmetro Nmero
mximo de subcadenas.
C:\PS> $a =
1La primera
2La segunda
3La tercera
'@

@'
lnea.
lnea.
de tres lneas.

C:\PS> $a -split "^\d", 0, "multiline"


La primera lnea.
La segunda lnea.
La tercera de tres lneas.

La instruccin siguiente utiliza la opcin SimpleMatch para que


el operador -split interprete literalmente el delimitador de punto (.)
Con la opcin predeterminada, RegexMatch, un punto entre comillas
(".") se interpreta de modo que se busquen coincidencias con
cualquier carcter salvo los caracteres de nueva lnea. Como
resultado, la instruccin de divisin devuelve una lnea en
blanco para cada carcter, excepto los caracteres de nueva lnea.
El 0 representa el valor "devolver todo" del parmetro Nmero
mximo de subcadenas. Se pueden usar opciones, como SimpleMatch,
nicamente cuando se especifica el valor del parmetro Nmero
mximo de subcadenas.
C:\PS> "Esta.es.una.prueba" -split ".", 0, "simplematch"
Esta
es
una
prueba

La instruccin siguiente divide la cadena en uno de los dos


delimitadores, segn el valor de una variable.
C:\PS> $i = 1
C:\PS> $c = "Apellidos, Nombre; Direccin, Ciudad, Estado, Cdigo postal"
C:\PS> $c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}}
Apellidos, Nombre
Direccin, Ciudad, Estado, Cdigo postal

Las siguientes instrucciones de divisin dividen un archivo XML


primero en el corchete angular y despus en el signo de punto y
coma. El resultado es una versin legible del archivo XML.
C:\PS>
C:\PS>
C:\PS>
C:\PS>

get-process powershell | export-clixml ps.xml


$x = import-clixml ps.xml
$x = $x -split "<"
$x = $x -split ";"

Para mostrar el resultado, escriba "$x".


C:\PS> $x
@{__NounName=Process
Name=powershell
Handles=428
VM=150081536
WS=34840576
PM=36253696
...
VEA TAMBIN
Split-Path
about_Operators
about_Comparison_Operators
about_Join
about_PowerShell_v2

También podría gustarte