Share via


Select-String

문자열 및 파일에서 텍스트를 찾습니다.

Syntax

Select-String
      [-Culture <String>]
      [-Pattern] <String[]>
      [-Path] <String[]>
      [-SimpleMatch]
      [-CaseSensitive]
      [-Quiet]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      -InputObject <PSObject>
      [-Pattern] <String[]>
      -Raw
      [-SimpleMatch]
      [-CaseSensitive]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      -InputObject <PSObject>
      [-Pattern] <String[]>
      [-SimpleMatch]
      [-CaseSensitive]
      [-Quiet]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      [-Pattern] <String[]>
      [-Path] <String[]>
      -Raw
      [-SimpleMatch]
      [-CaseSensitive]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      [-Pattern] <String[]>
      -LiteralPath <String[]>
      -Raw
      [-SimpleMatch]
      [-CaseSensitive]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      [-Pattern] <String[]>
      -LiteralPath <String[]>
      [-SimpleMatch]
      [-CaseSensitive]
      [-Quiet]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]

Description

cmdlet은 Select-String 정규식 일치를 사용하여 입력 문자열 및 파일에서 텍스트 패턴을 검색합니다. UNIX 또는 findstr.exe Windows와 유사하게 grep 사용할 Select-String 수 있습니다.

Select-String 는 텍스트 줄을 기반으로 하는 것입니다. 기본적으로 Select-String 각 줄에서 첫 번째 일치 항목을 찾고 각 일치 항목에 대해 일치 항목이 포함된 줄의 파일 이름, 줄 번호 및 모든 텍스트를 표시합니다. 줄당 여러 일치 항목을 찾거나, 일치 항목 전후에 텍스트를 표시하거나, 일치 항목이 있는지 여부를 나타내는 부울 값(True 또는 False)을 표시하도록 지시 Select-String 할 수 있습니다.

Select-String 는 모든 텍스트 일치 항목을 표시하거나 각 입력 파일의 첫 번째 일치 후 중지할 수 있습니다. Select-String 은 지정된 패턴과 일치하지 않는 모든 텍스트를 표시하는 데 사용할 수 있습니다.

유니코드 텍스트의 파일을 검색하는 Select-String 경우와 같이 특정 문자 인코딩이 예상되도록 지정할 수도 있습니다. Select-String 는 BOM(바이트 순서 표시)을 사용하여 파일의 인코딩 형식을 검색합니다. 파일에 BOM이 없으면 인코딩이 UTF8이라고 가정합니다.

예제

예제 1: 대/소문자 구분 일치 찾기

이 예제에서는 파이프라인에서 cmdlet으로 전송된 텍스트의 대/소문자를 구분하는 일치를 Select-String 수행합니다.

'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch

Hello 및 HELLO 텍스트 문자열은 파이프라인을 cmdlet으로 Select-String 보냅니다. Select-String에서는 Pattern 매개 변수를 사용하여 HELLO를 지정합니다. CaseSensitive 매개 변수는 대문자 패턴만 일치해야 하며, SimpleMatch 는 선택적 매개 변수이며 패턴의 문자열이 정규식으로 해석되지 않도록 지정합니다. Select-StringPowerShell 콘솔에 HELLO 를 표시합니다.

예제 2: 텍스트 파일에서 일치 항목 찾기

이 명령은 현재 디렉터리의 파일 이름 확장명을 .txt 가진 모든 파일을 검색합니다. 출력은 지정된 문자열을 포함하는 파일의 줄을 표시합니다.

Get-Alias | Out-File -FilePath .\Alias.txt
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\*.txt -Pattern 'Get-'

Alias.txt:8:Alias            cat -> Get-Content
Alias.txt:28:Alias           dir -> Get-ChildItem
Alias.txt:43:Alias           gal -> Get-Alias
Command.txt:966:Cmdlet       Get-Acl
Command.txt:967:Cmdlet       Get-Alias

이 예제 Get-Alias 에서는 cmdlet과 Get-Command 함께 Out-File 현재 디렉터리 Alias.txt 및 Command.txt 두 개의 텍스트 파일을 만드는 데 사용됩니다.

Select-String에서는 별표(*) wild카드 Path 매개 변수를 사용하여 파일 이름 확장.txt명을 가진 현재 디렉터리의 모든 파일을 검색합니다. Pattern 매개 변수는 Get-을 일치시킬 텍스트를 지정합니다. Select-String 는 PowerShell 콘솔에 출력을 표시합니다. 파일 이름 및 줄 번호는 Pattern 매개 변수에 대한 일치 항목이 포함된 각 콘텐츠 줄 앞에 섰습니다.

예제 3: 패턴 일치 찾기

이 예제에서는 여러 파일을 검색하여 지정된 패턴에 대한 일치 항목을 찾습니다. 패턴은 정규식 수량자를 사용합니다. 자세한 내용은 about_Regular_Expressions 참조하세요.

Select-String -Path "$PSHOME\en-US\*.txt" -Pattern '\?'

C:\Program Files\PowerShell\6\en-US\default.help.txt:27:    beginning at https://go.microsoft.com/fwlink/?LinkID=108518.
C:\Program Files\PowerShell\6\en-US\default.help.txt:50:    or go to: https://go.microsoft.com/fwlink/?LinkID=210614

cmdlet은 Select-String 경로패턴두 매개 변수를 사용합니다. Path 매개 변수는 PowerShell 디렉터리를 지정하는 변수 $PSHOME 를 사용합니다. 경로의 re기본der는 하위 디렉터리 en-US를 포함하고 디렉터리의 각 *.txt 파일을 지정합니다. Pattern 매개 변수는 각 파일의 물음표(?)와 일치하도록 지정합니다. 백슬래시(\)는 이스케이프 문자로 사용되며 물음표(?)가 정규식 수량자이므로 필요합니다. Select-String 는 PowerShell 콘솔에 출력을 표시합니다. 파일 이름 및 줄 번호는 Pattern 매개 변수에 대한 일치 항목이 포함된 각 콘텐츠 줄 앞에 섰습니다.

예제 4: 함수에서 Select-String 사용

이 예제에서는 PowerShell 도움말 파일에서 패턴을 검색하는 함수를 만듭니다. 이 예제의 경우 함수는 PowerShell 세션에만 존재합니다. PowerShell 세션이 닫혀 있으면 함수가 삭제됩니다. 자세한 내용은 about_Functions 참조하세요.

function Search-Help
{
    $PSHelp = "$PSHOME\en-US\*.txt"
    Select-String -Path $PSHelp -Pattern 'About_'
}

Search-Help

C:\Program Files\PowerShell\7\en-US\default.help.txt:67:    The titles of conceptual topics begin with "About_".
C:\Program Files\PowerShell\7\en-US\default.help.txt:70:    Get-Help About_<topic-name>
C:\Program Files\PowerShell\7\en-US\default.help.txt:93:    Get-Help About_Modules : Displays help about PowerShell modules.
C:\Program Files\PowerShell\7\en-US\default.help.txt:97:    about_Updatable_Help

함수는 PowerShell 명령줄에 만들어집니다. 이 Function 명령은 이름을 Search-Help사용합니다. Enter 키를 눌러 함수에 문 추가를 시작합니다. >> 프롬프트에서 각 문을 추가하고 예제와 같이 Enter 키를 누릅니다. 닫는 대괄호가 추가되면 PowerShell 프롬프트로 돌아갑니다.

함수에는 두 개의 명령이 포함되어 있습니다. 변수는 $PSHelp PowerShell 도움말 파일의 경로를 저장합니다. $PSHOME는 디렉터리의 각 *.txt 파일을 지정하는 하위 디렉터리 en-US가 있는 PowerShell 설치 디렉터리입니다.

Select-String 함수의 명령은 경로패턴 매개 변수를 사용합니다. Path 매개 변수는 변수를 $PSHelp 사용하여 경로를 가져옵니다. Pattern 매개 변수는 문자열 About_ 검색 조건으로 사용합니다.

함수를 실행하려면 .를 입력합니다 Search-Help. 함수의 Select-String 명령은 PowerShell 콘솔에 출력을 표시합니다.

예제 5: Windows 이벤트 로그에서 문자열 검색

다음은 Windows 이벤트 로그에서 문자열을 검색하는 예제입니다. 변수 $_ 는 파이프라인의 현재 개체를 나타냅니다. 자세한 내용은 about_Automatic_Variables를 참조하세요.

$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'

cmdlet은 Get-WinEvent LogName 매개 변수를 사용하여 애플리케이션 로그를 지정합니다. MaxEvents 매개 변수는 로그에서 50개의 가장 최근 이벤트를 가져옵니다. 로그 콘텐츠는 라는 $Events변수에 저장됩니다.

변수가 $Events 파이프라인 아래로 cmdlet으로 Select-String 전송됩니다. Select-String에서는 InputObject 매개 변수를 사용합니다. 변수는 $_ 현재 개체를 나타내며 message 이벤트의 속성입니다. 패턴 매개 변수는 문자열실패를 종으로 지정하고 일치 항목을 검색합니다$_.message. Select-String 는 PowerShell 콘솔에 출력을 표시합니다.

예제 6: 하위 디렉터리에서 문자열 찾기

이 예제에서는 디렉터리와 모든 하위 디렉터리에서 특정 텍스트 문자열을 검색합니다.

Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse | Select-String -Pattern 'Microsoft' -CaseSensitive

Get-ChildItem는 Path 매개 변수를 사용하여 C:\Windows\System32*.txt 지정합니다. Recurse 매개 변수에는 하위 디렉터리가 포함됩니다. 개체는 파이프라인 Select-String아래로 전송됩니다.

Select-String는 Pattern 매개 변수를 사용하고 Microsoft 문자열을 지정합니다. CaseSensitive 매개 변수는 문자열의 정확한 대/소문자를 일치시킬 때 사용됩니다. Select-String 는 PowerShell 콘솔에 출력을 표시합니다.

참고 항목

사용 권한에 따라 출력에 액세스 거부 메시지가 표시될 수 있습니다.

예제 7: 패턴과 일치하지 않는 문자열 찾기

이 예제에서는 패턴과 일치하지 않는 데이터 줄을 제외하는 방법을 보여 줍니다.

Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set'  -NotMatch

cmdlet은 Get-Command 파이프라인 아래로 개체를 전송하여 Out-File 현재 디렉터리에 Command.txt 파일을 만듭니다. Select-String에서는 Path 매개 변수를 사용하여 Command.txt 파일을 지정합니다. Pattern 매개 변수는 GetSet를 검색 패턴으로 지정합니다. NotMatch 매개 변수는 결과에서 GetSet을 제외합니다. Select-String는 Get 또는 Set을 포함하지 않는 출력을 PowerShell 콘솔에 표시합니다.

예제 8: 일치 전후 줄 찾기

이 예제에서는 일치하는 패턴 전후에 선을 가져오는 방법을 보여 줍니다.

Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get-Computer' -Context 2, 3

Command.txt:986:Cmdlet          Get-CmsMessage           6.1.0.0    Microsoft.PowerShell.Security
  Command.txt:987:Cmdlet          Get-Command              6.1.2.0    Microsoft.PowerShell.Core
> Command.txt:988:Cmdlet          Get-ComputerInfo         6.1.0.0    Microsoft.PowerShell.Management
  Command.txt:990:Cmdlet          Get-Content              6.1.0.0    Microsoft.PowerShell.Management
  Command.txt:991:Cmdlet          Get-ControlPanelItem     3.1.0.0    Microsoft.PowerShell.Management
  Command.txt:992:Cmdlet          Get-Credential           6.1.0.0    Microsoft.PowerShell.Security

cmdlet은 Get-Command 파이프라인 아래로 개체를 전송하여 Out-File 현재 디렉터리에 Command.txt 파일을 만듭니다. Select-String에서는 Path 매개 변수를 사용하여 Command.txt 파일을 지정합니다. Pattern 매개 변수는 검색 패턴으로 지정합니다Get-Computer. Context 매개 변수는 전후의 두 값을 사용하며 출력에서 패턴 일치를 꺾쇠괄호(>)로 표시합니다. Context 매개 변수는 첫 번째 패턴 일치 전에 두 줄, 마지막 패턴 일치 후 세 줄을 출력합니다.

예제 9: 모든 패턴 일치 항목 찾기

이 예제에서는 AllMatches 매개 변수가 텍스트 줄에서 각 패턴 일치 항목을 찾는 방법을 보여 줍니다. 기본적으로 Select-String 텍스트 줄에서 패턴의 첫 번째 발생만 찾습니다. 이 예제에서는 cmdlet에서 Get-Member 찾은 개체 속성을 사용합니다.

$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A

C:\Program Files\PowerShell\7\en-US\default.help.txt:3:    PowerShell Help System
C:\Program Files\PowerShell\7\en-US\default.help.txt:6:    Displays help about PowerShell cmdlets and concepts.
C:\Program Files\PowerShell\7\en-US\default.help.txt:9:    PowerShell Help describes PowerShell cmdlets

$A.Matches

Groups   : {0}
Success  : True
Name     : 0
Captures : {0}
Index    : 4
Length   : 10
Value    : PowerShell

$A.Matches.Length

8

$B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
$B.Matches.Length

9

cmdlet은 Get-ChildItem Path 매개 변수를 사용합니다. Path 매개 변수는 PowerShell 디렉터리를 지정하는 변수 $PSHOME 를 사용합니다. 경로의 re기본der는 하위 디렉터리 en-US를 포함하고 디렉터리의 각 *.txt 파일을 지정합니다. 개체는 Get-ChildItem 변수에 $A 저장됩니다. 변수가 $A 파이프라인 아래로 cmdlet으로 Select-String 전송됩니다. Select-String에서는 Pattern 매개 변수를 사용하여 각 파일에서 PowerShell 문자열을 검색합니다.

PowerShell 명령줄 $A 에서 변수 내용이 표시됩니다. PowerShell 문자열이 두 번 나오는 줄이 있습니다.

이 속성은 $A.Matches 각 줄에서 PowerShell 패턴의 첫 번째 항목을 나열합니다.

이 속성은 $A.Matches.Length 각 줄에서 PowerShell 패턴의 첫 번째 발생 횟수를 계산합니다.

변수는 $B 동일한 Get-ChildItem cmdlet을 Select-String 사용하지만 AllMatches 매개 변수를 추가합니다. AllMatches는 각 줄에서 PowerShell 패턴의 각 항목을 찾습니다. 변수 및 $B 변수에 $A 저장된 개체는 동일합니다.

$B.Matches.Length 각 줄에 대해 PowerShell 패턴이 발생할 때마다 계산되므로 속성이 증가합니다.

예제 10 - 'Out-String'을 사용하여 파이프라인 개체를 문자열로 변환

ToString() 파이프된 개체의 결과는 PowerShell의 서식 시스템에서 생성된 것과 동일한 서식 있는 문자열 표현이 아닙니다. 따라서 개체를 먼저 파이프해야 할 Out-String 수 있습니다.

파이핑을 사용하여 Out-String 서식이 지정된 출력을 단일 다중 줄 문자열 개체로 변환합니다. 즉, 일치 항목을 찾으면 Select-String 전체 다중 줄 문자열이 출력됩니다.

PS> $hash = @{
    Name = 'foo'
    Category = 'bar'
}

# !! NO output, due to .ToString() conversion
$hash | Select-String -Pattern 'foo'

# Out-String converts the output to a single multi-line string object
PS> $hash | Out-String | Select-String -Pattern 'foo'

Name                           Value
----                           -----
Name                           foo
Category                       bar

# Out-String -Stream converts the output to a multiple single-line string objects
PS> $hash | Out-String -Stream | Select-String -Pattern 'foo'

Name                           foo

파이핑을 사용하여 Out-String -Stream 서식이 지정된 출력을 여러 단일 줄 문자열 개체로 변환합니다. 즉, 일치 항목을 찾으면 Select-String 일치하는 줄만 출력됩니다.

매개 변수

-AllMatches

cmdlet이 각 텍스트 줄에서 둘 이상의 일치 항목을 검색한다는 것을 나타냅니다. 이 매개 변수가 Select-String 없으면 각 텍스트 줄에서 첫 번째 일치 항목만 찾습니다.

텍스트 줄에서 일치하는 항목을 두 개 이상 찾으면 Select-String 줄에 대한 MatchInfo 개체가 하나만 내보내지만 개체의 Matches 속성에는 모든 일치 항목이 포함됩니다.

참고 항목

SimpleMatch 매개 변수와 함께 사용하면 이 매개 변수가 무시됩니다. 검색하는 모든 일치 항목과 정규식 문자가 포함된 패턴을 반환하려면 SimpleMatch를 사용하지 않고 해당 문자를 이스케이프해야 합니다. 정규식 이스케이프에 대한 자세한 내용은 about_Regular_Expressions 참조하세요.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CaseSensitive

cmdlet 일치 항목이 대/소문자를 구분한다는 것을 나타냅니다. 기본적으로 일치 항목은 대/소문자를 구분하지 않습니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Context

패턴과 일치하는 줄 앞과 뒤의 지정된 줄 수를 캡처합니다.

이 매개 변수의 값으로 한 숫자를 입력하면 해당 숫자가 일치 전후에 캡처된 줄 수를 결정합니다. 두 숫자를 값으로 입력하면 첫 번째 숫자는 일치 항목 앞의 줄 수를 결정하고 두 번째 숫자는 일치 후 줄 수를 결정합니다. 예들 들어 -Context 2,3입니다.

기본 디스플레이에서 일치하는 선은 디스플레이의 첫 번째 열에 있는 오른쪽 꺾쇠괄호()(>ASCII 62)로 표시됩니다. 표시되지 않은 줄이 컨텍스트입니다.

Context 매개 변수는 .에 의해 Select-String생성된 개체의 수를 변경하지 않습니다. Select-String 는 각 일치 항목에 대해 하나의 MatchInfo 개체를 생성합니다. 컨텍스트는 개체의 Context 속성에 문자열 배열로 저장됩니다.

명령의 Select-String 출력이 파이프라인을 다른 Select-String 명령으로 보내면 수신 명령은 일치하는 줄의 텍스트만 검색합니다. 일치하는 줄은 상황에 맞는 줄의 텍스트가 아니라 MatchInfo 개체의 Line 속성 값입니다. 따라서 Context 매개 변수는 수신 Select-String 명령에서 유효하지 않습니다.

컨텍스트에 일치 항목이 포함된 경우 각 일치 항목에 대한 MatchInfo 개체에는 모든 컨텍스트 선이 포함되지만 겹치는 선은 디스플레이에 한 번만 표시됩니다.

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Culture

지정된 패턴과 일치하도록 문화권 이름을 지정합니다. Culture 매개 변수는 SimpleMatch 매개 변수와 함께 사용해야 합니다. 기본 동작은 현재 PowerShell Runspace(세션)의 문화권을 사용합니다.

지원되는 모든 문화권 목록을 얻으려면 명령을 사용합니다 Get-Culture -ListAvailable .

또한 이 매개 변수는 다음 인수를 허용합니다.

  • CurrentCulture, 즉 기본값입니다.
  • 서수, 즉 비언어적 이진 비교입니다.
  • 고정, 즉 문화권 독립적 비교입니다.

명령을 사용하면 Select-String -Culture Ordinal -CaseSensitive -SimpleMatch 가장 빠른 이진 비교를 얻을 수 있습니다.

Culture 매개 변수는 탭 완성을 사용하여 사용 가능한 문화권을 지정하는 인수 목록을 스크롤합니다. 사용 가능한 모든 인수를 나열하려면 다음 명령을 사용합니다.

(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues

.NET CultureInfo.Name 속성에 대한 자세한 내용은 CultureInfo.Name 참조하세요.

Culture 매개 변수는 PowerShell 7에서 도입되었습니다.

Type:String
Position:Named
Default value:Culture of the current PowerShell session
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

대상 파일의 인코딩 형식을 지정합니다. 기본값은 utf8NoBOM입니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • ascii: ASCII(7비트) 문자 집합의 인코딩을 사용합니다.
  • ansi: 현재 문화권의 ANSI 코드 페이지에 대한 인코딩을 사용합니다. 이 옵션은 PowerShell 7.4에 추가되었습니다.
  • bigendianunicode: big-endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.
  • bigendianutf32: big-endian 바이트 순서를 사용하여 UTF-32 형식으로 인코딩합니다.
  • oem: MS-DOS 및 콘솔 프로그램에 대한 기본 인코딩을 사용합니다.
  • unicode: little-endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.
  • utf7: UTF-7 형식으로 인코딩합니다.
  • utf8: UTF-8 형식으로 인코딩합니다.
  • utf8BOM: BOM(바이트 순서 표시)을 사용하여 UTF-8 형식으로 인코딩
  • utf8NoBOM: BOM(바이트 순서 표시)이 없는 UTF-8 형식으로 인코딩
  • utf32: UTF-32 형식으로 인코딩합니다.

PowerShell 6.2부터 인코딩 매개 변수는 등록된 코드 페이지(예: ) 또는 등록된 코드 페이지의 문자열 이름(예: -Encoding 1251-Encoding "windows-1251")의 숫자 ID도 허용합니다. 자세한 내용은 Encoding.CodePage에 대한 .NET 설명서를 참조하세요.

PowerShell 7.4부터 인코딩 매개 변수 값을 사용하여 Ansi 수동으로 지정하지 않고도 현재 문화권의 ANSI 코드 페이지에 대한 숫자 ID를 전달할 수 있습니다.

참고 항목

UTF-7*은 더 이상 사용하지 않는 것이 좋습니다. PowerShell 7.1을 기준으로 인코딩 매개 변수를 지정 utf7 하면 경고가 기록됩니다.

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

지정된 항목을 제외합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt.)을 입력합니다. 야생카드 허용됩니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

지정된 항목을 포함합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt.)을 입력합니다. 야생카드 허용됩니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

검색할 텍스트를 지정합니다. 텍스트가 포함된 변수를 입력하거나 텍스트를 가져오는 명령 또는 식을 입력하세요.

InputObject 매개 변수를 사용하는 것은 파이프라인 Select-String아래로 문자열을 보내는 것과 다릅니다.

둘 이상의 문자열을 cmdlet에 파이프하면 Select-String 각 문자열에서 지정된 텍스트를 검색하고 검색 텍스트가 포함된 각 문자열을 반환합니다.

InputObject 매개 변수를 사용하여 문자열 컬렉션을 제출하는 경우 컬렉션을 단일 결합 문자열로 처리합니다Select-String. Select-String 는 문자열에서 검색 텍스트를 찾으면 문자열을 단위로 반환합니다.

FileInfo 개체는 파일의 경로로 처리됩니다. 파일 경로를 지정 Select-String 하면 개체의 표현이 아닌 ToString() 파일의 내용을 검색합니다.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-List

일치하는 텍스트의 첫 번째 인스턴스만 각 입력 파일에서 반환됩니다. 정규식과 일치하는 콘텐츠가 있는 파일 목록을 검색하는 가장 효율적인 방법입니다.

기본적으로 Select-String 찾은 각 일치 항목에 대해 MatchInfo 개체를 반환합니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

검색할 파일의 경로를 지정합니다. LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 어떤 문자도 야생으로 해석되지 카드. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다. 자세한 내용은 about_Quoting_Rules 참조하세요.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoEmphasis

기본적으로 Select-String Pattern 매개 변수를 사용하여 검색한 패턴과 일치하는 문자열을 강조 표시합니다. NoEmphasis 매개 변수는 강조 표시를 사용하지 않도록 설정합니다.

강조는 PowerShell 배경 및 텍스트 색에 따라 음수 색을 사용합니다. 예를 들어 PowerShell 색이 흰색 텍스트가 있는 검은색 배경인 경우입니다. 강조는 검은색 텍스트가 있는 흰색 배경입니다.

이 매개 변수는 PowerShell 7에서 도입되었습니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NotMatch

NotMatch 매개 변수는 지정된 패턴과 일치하지 않는 텍스트를 찾습니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

검색할 파일의 경로를 지정합니다. 야생카드 허용됩니다. 기본 위치는 로컬 디렉터리입니다.

디렉터리에서 파일(예: log1.txt, *.doc또는 *.*.)을 지정합니다. 디렉터리만 지정하면 명령이 실패합니다.

Type:String[]
Position:1
Default value:Local directory
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Pattern

각 줄에서 찾을 텍스트를 지정합니다. 패턴 값은 정규식으로 처리됩니다.

정규식에 대한 자세한 내용은 about_Regular_Expressions 참조하세요.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Quiet

cmdlet이 MatchInfo 개체 대신 부울 값(True 또는 False)을 반환한다는 것을 나타냅니다. 패턴이 발견되면 값이 True입니다. 그렇지 않으면 값이 False입니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Raw

cmdlet이 MatchInfo 개체가 아닌 일치하는 문자열만 출력하도록 합니다. 이는 Unix grep 또는 Windows findstr.exe 명령과 가장 유사한 동작의 결과입니다.

이 매개 변수는 PowerShell 7에서 도입되었습니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SimpleMatch

cmdlet이 정규식 일치가 아닌 단순 일치를 사용한다는 것을 나타냅니다. 단순 일치 Select-String 에서 Pattern 매개 변수의 텍스트 입력을 검색합니다. Pattern 매개 변수의 값은 정규식 문으로 해석되지 않습니다.

또한 SimpleMatch를 사용하면 반환된 MatchInfo 개체의 Matches 속성이 비어 있습니다.

참고 항목

이 매개 변수를 AllMatches 매개 변수 와 함께 사용하면 AllMatches 가 무시됩니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

PSObject

메서드가 있는 모든 개체를 ToString() 이 cmdlet으로 파이프할 수 있습니다.

출력

MatchInfo

기본적으로 이 cmdlet은 찾은 각 일치 항목에 대해 MatchInfo 개체를 반환합니다.

Boolean

Quiet 매개 변수를 사용하는 경우 이 cmdlet은 패턴이 발견되었는지 여부를 나타내는 부울 값을 반환합니다.

String

Raw 매개 변수를 사용하는 경우 이 cmdlet은 패턴과 일치하는 String 개체 집합을 반환합니다.

참고

PowerShell에는 다음 별칭이 포함됩니다.Select-String

  • 모든 플랫폼:
    • sls

Select-String는 UNIX 또는 findstr.exe Windows와 유사 grep 합니다.

cmdlet의 Select-String 별칭은 sls PowerShell 3.0에서 도입되었습니다.

참고 항목

PowerShell 명령에 대한 승인된 동사에 따르면 cmdletsc의 공식 별칭 접두 Select-* 사는 아닙니다sl. 따라서 적절한 별칭은 Select-String .가 아니라 sls여야 scs합니다. 이 규칙은 예외입니다.

개체를 다음으로 파이핑하는 Select-String경우:

  • FileInfo 개체는 파일의 경로로 처리됩니다. 파일 경로를 지정 Select-String 하면 개체의 표현이 아닌 ToString() 파일의 내용을 검색합니다.
  • ToString() 파이프된 개체의 결과는 PowerShell의 서식 시스템에서 생성된 것과 동일한 서식 있는 문자열 표현이 아닙니다. 따라서 개체를 먼저 파이프해야 할 Out-String 수 있습니다. 자세한 내용은 예제 10을 참조하세요.

사용Select-String하려면 찾을 텍스트를 Pattern 매개 변수의 값으로 입력합니다. 검색할 텍스트를 지정하려면 다음 조건을 사용합니다.

  • 따옴표 붙은 문자열에 텍스트를 입력한 다음 에 파이프합니다 Select-String.
  • 텍스트 문자열을 변수에 저장한 다음, 변수를 InputObject 매개 변수의 값으로 지정합니다.
  • 텍스트가 파일에 저장되는 경우 Path 매개 변수를 사용하여 파일의 경로를 지정합니다.

기본적으로 Select-String Pattern 매개 변수의 값을 정규식으로 해석합니다. 자세한 내용은 about_Regular_Expressions 참조하세요. SimpleMatch 매개 변수를 사용하여 정규식 일치를 재정의할 수 있습니다. SimpleMatch 매개 변수는 입력에서 Pattern 매개 변수 값의 인스턴스를 찾습니다.

기본 출력 Select-String 은 일치 항목에 대한 자세한 정보를 포함하는 MatchInfo 개체입니다. MatchInfo 개체에는 Filename 및 Line같은 속성이 있으므로 파일에서 텍스트를 검색할 때 개체의 정보가 유용합니다. 입력이 파일에서 온 것이 아닌 경우 이러한 매개 변수의 값은 InputStream입니다.

MatchInfo 개체에 정보가 필요하지 않은 경우 Quiet 매개 변수를 사용합니다. Quiet 매개 변수는 MatchInfo 개체 대신 일치 항목을 찾았는지 여부를 나타내는 부울 값(True 또는 False)을 반환합니다.

구를 일치시키는 Select-String 경우 시스템에 대해 설정된 현재 문화권을 사용합니다. 현재 문화권을 찾으려면 cmdlet을 Get-Culture 사용합니다.

MatchInfo 개체의 속성을 찾으려면 다음 명령을 입력합니다.

Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *