항목
    about_Split

간단한 설명
    분할 연산자를 사용하여 하나 이상의 문자열을 하위 문자열로 분할하는 방법에 대해 설명합니다. 

자세한 설명
    분할 연산자는 하나 이상의 문자열을 하위 문자열로 분할합니다. 분할 연산의 다음 요소를 변경할 수 있습니다.
	
	-- 구분 기호. 기본값은 공백이지만 구분 기호를 지정하는 문자, 문자열, 패턴 또는 스크립트 블록을 지정할 수 
	   있습니다.
	
	-- 하위 문자열의 최대 수. 기본값은 모든 하위 문자열을 반환하는 것입니다. 하위 문자열 수보다 작은 수를 
	   지정하면 나머지 하위 문자열이 마지막 하위 문자열에서 연결됩니다. 

	-- 구분 기호가 일치하는 조건을 지정하는 옵션(예: SimpleMatch 및 Multiline) 


  구문

   다음 다이어그램은 -split 연산자의 구문을 보여 줍니다.

   매개 변수 이름은 명령에 표시되지 않고 매개 변수 값만 포함됩니다. 값은 구문 다이어그램에서 지정된 순서대로 
   나타나야 합니다.

	-Split <String>

	<String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]

	<String> -Split {<ScriptBlock>} [,<Max-substrings>]

   모든 split 문에서 -split 대신에 -iSplit 또는 -cSplit을 사용할 수 있습니다. -iSplit 및 -split 연산자는 
   대/소문자를 구분하지 않습니다. -cSplit 연산자는 대/소문자를 구분하므로 구분 기호 규칙이 적용될 때 대/소문자가 
   고려됩니다.


  매개 변수

   <String>
        분할할 하나 이상의 문자열을 지정합니다. 여러 문자열을 전송하는 경우 모든 문자열이 동일한 구분 기호 규칙을 
        사용하여 분할됩니다.
        예제:

	    -split "red yellow blue green"
	    red
            yellow
	    blue
	    green

   <Delimiter>
        하위 문자열의 끝을 식별하는 문자. 기본 구분 기호는 공백과 줄 바꿈(`n) 및 탭(`t)과 같은 인쇄할 수 없는 
        문자입니다. 문자열이 분할될 때 구분 기호는 모든 하위 문자열에서 생략됩니다. 예를 들면 다음과 같습니다.

	    "Lastname:FirstName:Address" -split ":"
	    Lastname
	    FirstName
	    Address
	
    <Max-substrings>
        반환된 하위 문자열의 최대 수를 지정합니다. 기본값은 모든 하위 문자열이 구분 기호로 분할되는 것입니다. 하위 
        문자열이 더 많으면 최종 하위 문자열에 연결되고, 하위 문자열이 더 적으면 모든 하위 문자열이 반환됩니다. 값 
        0과 음수는 모든 하위 문자열을 반환합니다.

        둘 이상의 문자열(문자열 배열)을 분할 연산자에 전송하는 경우 Max-substrings 제한은 각 문자열에 개별적으로 
        적용됩니다. 예를 들면 다음과 같습니다.

	    $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" $c 
	    -split ",", 5
	    Mercury
	    Venus
	    Earth
	    Mars
	    Jupiter,Saturn,Uranus,Neptune
	

    <ScriptBlock>
        구분 기호를 적용하기 위한 규칙을 지정하는 식입니다. 식은 $true 또는 $false로 평가되어야 합니다. 스크립트 
        블록은 중괄호로 묶으십시오. 예를 들면 다음과 같습니다.
	
            $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptu
            ne" $c -split {$_ -eq "e" -or $_ -eq "p"}
	    M
	    rcury,V
	    nus,Earth,Mars,Ju
	    it
	    r,Saturn,Uranus,N
	
	    tun

    <Options>
        옵션 이름을 따옴표로 묶으십시오. Options는 <Max-substrings> 매개 변수가 문에서 사용되는 
        경우에만 유효합니다.

        Options 매개 변수의 구문은 다음과 같습니다.

	    "SimpleMatch [,IgnoreCase]"

            "[RegexMatch] [,IgnoreCase] [,CultureInvariant] 
            [,IgnorePatternWhitespace] [,ExplicitCapture] 
            [,Singleline | ,Multiline]"

 
        SimpleMatch 옵션은 다음과 같습니다.
         	
          -- SimpleMatch: 구분 기호를 평가할 때 간단한 문자열 비교를 사용합니다. RegexMatch와 
             함께 사용할 수 없습니다.

          -- IgnoreCase: -cSplit 연산자가 지정된 경우에도 대/소문자를 구분하지 않는 일치를 적용합니다.


        RegexMatch 옵션은 다음과 같습니다.

          -- RegexMatch: 구분 기호를 평가할 때 정규식 일치를 사용합니다. 이는 기본 동작이 아닙니다. 
             SimpleMatch와 함께 사용할 수 없습니다.

          -- IgnoreCase: -cSplit 연산자가 지정된 경우에도 대/소문자를 구분하지 않는 일치를 적용합니다.

          -- CultureInvariant: 구분 기호를 평가할 때 언어에서 문화권 차이를 무시합니다. 
             RegexMatch와 함께 사용하는 경우에만 유효합니다.

          -- IgnorePatternWhitespace: 이스케이프되지 않은 공백과 숫자 기호(#)로 표시된 
             주석을 무시합니다. RegexMatch와 함께 사용하는 경우에만 유효합니다.

          -- Multiline: Multiline 모드는 줄과 문자열의 시작 및 끝을 인식합니다. 
             RegexMatch와 함께 사용하는 경우에만 유효합니다. 기본값은 Singleline입니다.

          -- Singleline: Singleline 모드는 문자열의 시작 및 끝만 인식합니다. 
             RegexMatch와 함께 사용하는 경우에만 유효합니다. 기본값은 Singleline입니다.

          -- ExplicitCapture: 명시적 캡처 그룹만 결과 목록으로 반환되도록 명명되지 않은 일치 그룹을 
             무시합니다. RegexMatch와 함께 사용하는 경우에만 유효합니다.
	

  단항 및 이항 분할 연산자

    단항 분할 연산자(-split <string>)는 쉼표보다 우선 순위가 높습니다. 따라서 쉼표로 구분된 문자열 
    목록을 단항 분할 연산자로 전송하면 첫 번째 쉼표 앞에 있는 첫 번째 문자열만 분할됩니다.

    둘 이상의 문자열을 분할하려면 이항 분할 연산자를 사용합니다(<string> -split <delimiter>). 
    모든 문자열을 괄호로 묶거나 문자열을 변수에 저장한 다음 변수를 분할 연산자로 전송합니다.

    다음 예를 살펴 보십시오.

	-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

    
  예제

    다음 문은 공백에서 문자열을 분할합니다.

	C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell with remoting"

	Windows
	PowerShell
	2.0
	Windows
	PowerShell
	with
	remoting


    다음 문은 모든 쉼표에서 문자열을 분할합니다.

	C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split ','

        Mercury
        Venus
        Earth 
        Mars
        Jupiter
        Saturn
        Uranus
        Neptune


    다음 문은 패턴 "er"에서 문자열을 분할합니다.

	C:\PS>"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split 'er'

	M
	cury,Venus,Earth,Mars,Jupit
	,Saturn,Uranus,Neptune



    다음 문은 문자 "N"에서 대/소문자를 구분하는 분할을 수행합니다.

	C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N'

	Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,
	eptune



    다음 문은 "e" 및 "t"에서 문자열을 분할합니다.

        C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[et]'

        M
        rcury,V
        nus,
        ar
        h,Mars,Jupi

        r,Sa
        urn,Uranus,N
        p
        un


    다음 문은 "e" 및 "r"에서 문자열을 분할하지만 결과 하위 문자열을 6개의 하위 문자열로 제한합니다.

        C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[er]', 6

	M

	cu
	y,V
	nus,
	arth,Mars,Jupiter,Saturn,Uranus,Neptune



    다음 문은 문자열을 3개의 하위 문자열로 분할합니다. 

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

	a
	b
	c,d,e,f,g,h


    다음 문은 두 문자열을 3개의 하위 문자열로 분할합니다. 제한이 각 문자열에 독립적으로 적용됩니다. 

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

	a
	b
	c,d
	e
	f
	g,h


    다음 문은 첫 숫자에서 here-string의 각 줄을 분할하며, Multiline 옵션을 사용하여 각 줄과 문자열의 
    시작을 인식합니다.

    0은 Max-substrings 매개 변수의 "return all" 값을 나타냅니다. Max-substrings 값이 지정된 경우에만 
    Multiline과 같은 옵션을 사용할 수 있습니다.
    
        C:\PS> $a = @'
	1The first line.
	2The second line.
	3The third of three lines.
	'@
        
        C:\PS> $a -split "^\d", 0, "multiline"
	
	The first line.


	The second line.


	The third of three lines.



    다음 문은 SimpleMatch 옵션을 사용하여 점(.) 구분 기호를 문자 그대로 해석하도록 -split 연산자에 
    지시합니다. 

    기본값 RegexMatch를 사용하는 경우 따옴표로 묶인 점(".")은 줄 바꿈 문자를 제외한 모든 문자와 일치하는 
    것으로 해석됩니다. 따라서 split 문은 줄 바꿈을 제외한 모든 문자에 대해 빈 줄을 반환합니다.

    0은 Max-substrings 매개 변수의 "return all" 값을 나타냅니다. Max-substrings 값이 지정된 경우에만 
    SimpleMatch와 같은 옵션을 사용할 수 있습니다.

        C:\PS> "This.is.a.test" -split ".", 0, "simplematch"

	This
        is
        a 
	test	



    다음 문은 변수의 값에 따라 두 구분 기호 중 하나에서 문자열을 분할합니다.

        C:\PS> 	$i = 1
        C:\PS> 	$c = "LastName, FirstName; Address, City, State, Zip"
        C:\PS> 	$c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}}

	LastName, FirstName
	 Address, City, State, Zip
		
	

    다음 split 문은 XML 파일을 꺾쇠 괄호에서 먼저 분할한 다음 세미콜론에서 분할합니다. 결과는 읽을 수 
    있는 버전의 XML 파일입니다.

        C:\PS> 	get-process powershell | export-clixml ps.xml
        C:\PS> 	$x = import-clixml ps.xml
        C:\PS> 	$x = $x -split "<"
        C:\PS> 	$x = $x -split ";"


    결과를 표시하려면 "$x"를 입력하십시오.
	
	C:\PS> $x

        @{__NounName=Process
	Name=powershell
	Handles=428
	VM=150081536
	WS=34840576
	PM=36253696
	...


참고 항목
    Split-Path
    about_Operators
    about_Comparison_Operators
    about_Join
    about_PowerShell_v2




목차