항목 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