다음을 통해 공유


Convert-String

예제와 일치하도록 문자열의 서식을 지정합니다.

구문

Convert-String
       [-Example <System.Collections.Generic.List`1[System.Management.Automation.PSObject]>]
       -InputObject <String>
       [<CommonParameters>]

Description

cmdlet은 예제 형식과 일치하도록 문자열의 형식을 지정합니다.

예제

예제 1: 문자열 형식 변환

"Mu Han", "Jim Hance", "David Ahs", "Kim Akers" | Convert-String -Example "Ed Wilson=Wilson, E."

Han, M.
Hance, J.
Ahs, D.
Akers, K.

첫 번째 명령은 이름과 성을 포함하는 배열을 만듭니다.

두 번째 명령은 예제에 따라 이름의 형식을 지정합니다. 출력에서 성을 먼저 입력한 다음, 이니셜을 넣습니다.

예제 2: 문자열 형식 간소화

$composers = @("Johann Sebastian Bach", "Wolfgang Amadeus Mozart", "Frederic Francois Chopin", "Johannes Brahms")
$composers | Convert-String -Example "first middle last=last, first"

Bach, Johann
Mozart, Wolfgang
Chopin, Frederic
Brahms, Johannes

첫 번째 명령은 첫 번째, 중간 및 성을 포함하는 배열을 만듭니다. 마지막 항목에는 중간 이름이 없습니다.

두 번째 명령은 예제에 따라 이름의 형식을 지정합니다. 성을 출력에 먼저 배치하고 그 뒤에 이름을 넣습니다. 모든 중간 이름이 제거되었습니다. 중간 이름이 없는 항목이 올바르게 처리됩니다.

예제 3: 문자열이 예제와 일치하지 않는 경우 출력 관리

$composers = @("Johann Sebastian Bach", "Wolfgang Amadeus Mozart", "Frederic Francois Chopin", "Johannes Brahms")
$composers | Convert-String -Example "first middle last=middle, first"

Sebastian, Johann
Amadeus, Wolfgang
Francois, Frederic

첫 번째 명령은 첫 번째, 중간 및 성을 포함하는 배열을 만듭니다. 마지막 항목에는 중간 이름이 없습니다.

두 번째 명령은 예제에 따라 이름의 형식을 지정합니다. 출력에서 가운데 이름을 먼저 입력하고 그 뒤에 이름을 추가합니다. 마지막 항목 $Composers 은 샘플 패턴과 일치하지 않으므로 건너뜁습니다. 중간 이름이 없습니다.

예제 4: 미용 공간 주의

$composers = @("Antonio Vivaldi", "Richard Wagner ", "Franz Schubert", "Johannes Brahms ")
$composers | Convert-String -Example "Patti Fuller = Fuller, P."

Wagner, R.
 Brahms, J.

첫 번째 명령은 이름과 성의 배열을 만듭니다. 두 번째 및 네 번째 항목에는 성 뒤에 추가 후행 공백이 있습니다.

두 번째 명령은 샘플 패턴 과 일치하는 모든 문자열(단어, 공백, 단어 및 마지막 후행 공백)을 모두 등호(=)로 변환합니다. 또한 출력의 선행 공간을 확인합니다.

예제 5: 여러 패턴을 사용하여 프로세스 정보 서식 지정

$ExamplePatterns = @(
    @{before='"Hello","World"'; after='World: Hello'},
    @{before='"Hello","1"'; after='1: Hello'},
    @{before='"Hello-World","22"'; after='22: Hello-World'},
    @{before='"hello world","333"'; after='333: hello world'}
)
$Processes = Get-Process   | Select-Object -Property ProcessName, Id | ConvertTo-Csv -NoTypeInformation
$Processes | Convert-String -Example $ExamplePatterns

Id: ProcessName
4368: AGSService
8896: Amazon Music Helper
4420: AppleMobileDeviceService
...
11140: git-bash
0: Idle
...
56: Secure System
...
13028: WmiPrvSE
2724: WUDFHost
2980: WUDFHost
3348: WUDFHost

$ExamplePatterns 예제를 통해 데이터의 다양한 예상 패턴을 정의합니다.

첫 번째 패턴은 @{before='"Hello","World"'; after='World: Hello'}다음과 같이 읽습니다.

  • 단어가 큰따옴표로 묶인 다음 쉼표로 묶인 문자열을 예상합니다.
  • 두 번째 단어와 마지막 단어는 따옴표로 묶입니다.
  • 문자열에 공백이 없습니다. 출력에서: 두 번째 단어를 먼저 배치합니다.
  • 따옴표가 없으면 작은따옴표가 없는 단일 공백과 첫 번째 단어가 있습니다.

두 번째 패턴은 @{before='"Hello","1"'; after='1: Hello'}다음과 같이 읽습니다.

  • 단어가 큰따옴표로 묶인 다음 쉼표로 묶인 문자열을 예상합니다.
  • 그리고 따옴표로 묶인 숫자;
  • 문자열에 공백이 없습니다. 출력에서: 숫자를 먼저 배치합니다.
  • 따옴표가 없으면 작은따옴표가 없는 한 개의 공백이 있습니다.

세 번째 패턴은 @{before='"Hello-World","22"'; after='22: Hello-World'}다음과 같이 읽습니다.

  • 사이에 하이픈이 있는 두 단어가 묶인 문자열을 예상합니다.
  • 큰따옴표, 쉼표, 따옴표로 묶인 숫자,
  • 쉼표와 세 번째 큰따옴표 사이에 공백이 없습니다.
  • 출력에서: 숫자를 먼저 따옴표 없이 배치한 다음, 단일 공백을 배치합니다.
  • 그런 다음, 따옴표 없이 하이픈이 있는 단어를 입력합니다.

네 번째 및 마지막 패턴 @{before='"hello world","333"'; after='333: hello world'}은 다음과 같이 읽습니다.

  • 사이에 공백이 있는 두 단어가 묶인 문자열을 예상합니다.
  • 큰따옴표, 쉼표, 따옴표로 묶인 숫자,
  • 쉼표와 세 번째 큰따옴표 사이에 공백이 없습니다.
  • 출력에서: 숫자를 먼저 따옴표 없이 배치한 다음, 단일 공백을 배치합니다.
  • 그런 다음 그 사이에 공백이 있는 단어를 따옴표 없이 표시합니다.

첫 번째 명령은 Get-Process cmdlet을 사용하여 모든 프로세스를 가져옵니다. 이 명령은 프로세스 이름 및 프로세스 ID를 선택하는 Select-Object cmdlet에 전달합니다. 파이프라인의 끝에서 명령은 ConvertTo-Csv cmdlet을 사용하여 형식 정보 없이 출력을 쉼표로 구분된 값으로 변환합니다. 이 명령은 결과를 $Processes 변수에 저장합니다. 이제 $Processes 프로세스 이름 및 PID가 포함됩니다.

두 번째 명령은 입력 항목의 순서를 변경하는 예제 변수를 지정합니다. 이 명령은 .의 각 문자열을 덮습니다 $Processes.

참고 항목

네 번째 패턴은 공백으로 구분된 두 개 이상의 단어가 일치한다는 것을 암시적으로 말합니다. 네 번째 패턴이 없으면 큰따옴표로 묶인 문자열의 첫 번째 단어만 일치합니다.

매개 변수

-Example

대상 형식의 예제 목록을 지정합니다. 다음 예제와 같이 왼쪽의 원본 패턴과 오른쪽의 대상 패턴을 사용하여 등호(=)로 구분된 쌍을 지정합니다.

  • -Example "Hello World=World, Hello"
  • -Example "Hello World=World: Hello",'"Hello","1"=1: Hello'

참고 항목

두 번째 예제에서는 패턴 목록을 사용합니다.

또는 이전이후 속성이 포함된 해시 테이블 목록을 지정합니다.

  • -Example @{before='"Hello","World"'; after='World: Hello'}, @{before='"Hello","1"'; after='1: Hello'}

주의

패턴의 일부로 처리되므로 등호(=) 주위에 공백을 사용하지 마세요.

형식:List<T>[PSObject]
별칭:E
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

서식을 지정할 문자열을 지정합니다.

형식:String
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

입력

String

이 cmdlet에 문자열을 파이프할 수 있습니다.

출력

String

이 cmdlet은 문자열을 반환합니다.