Select-String
문자열 및 파일에서 텍스트를 찾습니다.
구문
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-String
는 PowerShell 콘솔에 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
는 별표(*
) 와일드카드와 함께 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
를 사용합니다. 경로의 나머지 부분에는 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
이벤트의 속성입니다. Pattern 매개 변수는 실패 문자열을 지정하고 일치 항목을 검색합니다$_.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 매개 변수는 Get 및 Set를 검색 패턴으로 지정합니다. NotMatch 매개 변수는 결과에서 Get 및 Set을 제외합니다.
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
를 사용합니다. 경로의 나머지 부분에는 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 참조하세요.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-CaseSensitive
cmdlet 일치 항목이 대/소문자를 구분한다는 것을 나타냅니다. 기본적으로 일치 항목은 대/소문자를 구분하지 않습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Context
패턴과 일치하는 줄 앞과 뒤의 지정된 줄 수를 캡처합니다.
이 매개 변수의 값으로 한 숫자를 입력하면 해당 숫자가 일치 전후에 캡처된 줄 수를 결정합니다. 두 숫자를 값으로 입력하면 첫 번째 숫자는 일치 항목 앞의 줄 수를 결정하고 두 번째 숫자는 일치 후 줄 수를 결정합니다. 예들 들어 -Context 2,3
입니다.
기본 디스플레이에서 일치하는 선은 디스플레이의 첫 번째 열에 있는 오른쪽 꺾쇠괄호()(>
ASCII 62)로 표시됩니다. 표시되지 않은 줄이 컨텍스트입니다.
Context 매개 변수는 .에 의해 Select-String
생성된 개체의 수를 변경하지 않습니다.
Select-String
는 각 일치 항목에 대해 하나의 MatchInfo 개체를 생성합니다. 컨텍스트는 개체의 Context 속성에 문자열 배열로 저장됩니다.
명령의 Select-String
출력이 파이프라인을 다른 Select-String
명령으로 보내면 수신 명령은 일치하는 줄의 텍스트만 검색합니다. 일치하는 줄은 상황에 맞는 줄의 텍스트가 아니라 MatchInfo 개체의 Line 속성 값입니다. 따라서 Context 매개 변수는 수신 Select-String
명령에서 유효하지 않습니다.
컨텍스트에 일치 항목이 포함된 경우 각 일치 항목에 대한 MatchInfo 개체에는 모든 컨텍스트 선이 포함되지만 겹치는 선은 디스플레이에 한 번만 표시됩니다.
형식: | Int32[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | 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에서 도입되었습니다.
형식: | String |
Position: | Named |
Default value: | Culture of the current PowerShell session |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | 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
하면 경고가 기록됩니다.
형식: | Encoding |
허용되는 값: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Exclude
지정된 항목을 제외합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt
.)을 입력합니다. 와일드카드가 허용됩니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-Include
지정된 항목을 포함합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt
.)을 입력합니다. 와일드카드가 허용됩니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-InputObject
검색할 텍스트를 지정합니다. 텍스트가 포함된 변수를 입력하거나 텍스트를 가져오는 명령 또는 식을 입력하세요.
InputObject 매개 변수를 사용하는 것은 파이프라인 Select-String
아래로 문자열을 보내는 것과 다릅니다.
둘 이상의 문자열을 cmdlet에 파이프하면 Select-String
각 문자열에서 지정된 텍스트를 검색하고 검색 텍스트가 포함된 각 문자열을 반환합니다.
InputObject 매개 변수를 사용하여 문자열 컬렉션을 제출하는 경우 컬렉션을 단일 결합 문자열로 처리합니다Select-String
. Select-String
는 문자열에서 검색 텍스트를 찾으면 문자열을 단위로 반환합니다.
FileInfo 개체는 파일의 경로로 처리됩니다. 파일 경로를 지정 Select-String
하면 개체의 표현이 아닌 ToString()
파일의 내용을 검색합니다.
형식: | PSObject |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-List
일치하는 텍스트의 첫 번째 인스턴스만 각 입력 파일에서 반환됩니다. 정규식과 일치하는 콘텐츠가 있는 파일 목록을 검색하는 가장 효율적인 방법입니다.
기본적으로 Select-String
찾은 각 일치 항목에 대해 MatchInfo 개체를 반환합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-LiteralPath
검색할 파일의 경로를 지정합니다. LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다. 자세한 내용은 about_Quoting_Rules 참조하세요.
형식: | String[] |
별칭: | PSPath, LP |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-NoEmphasis
기본적으로 Select-String
Pattern 매개 변수를 사용하여 검색한 패턴과 일치하는 문자열을 강조 표시합니다. NoEmphasis 매개 변수는 강조 표시를 사용하지 않도록 설정합니다.
강조는 PowerShell 배경 및 텍스트 색에 따라 음수 색을 사용합니다. 예를 들어 PowerShell 색이 흰색 텍스트가 있는 검은색 배경인 경우입니다. 강조는 검은색 텍스트가 있는 흰색 배경입니다.
이 매개 변수는 PowerShell 7에서 도입되었습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-NotMatch
NotMatch 매개 변수는 지정된 패턴과 일치하지 않는 텍스트를 찾습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Path
검색할 파일의 경로를 지정합니다. 와일드카드가 허용됩니다. 기본 위치는 로컬 디렉터리입니다.
디렉터리에서 파일(예: log1.txt
, *.doc
또는 *.*
.)을 지정합니다. 디렉터리만 지정하면 명령이 실패합니다.
형식: | String[] |
Position: | 1 |
Default value: | Local directory |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | True |
-Pattern
각 줄에서 찾을 텍스트를 지정합니다. 패턴 값은 정규식으로 처리됩니다.
정규식에 대한 자세한 내용은 about_Regular_Expressions 참조하세요.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Quiet
cmdlet이 MatchInfo 개체 대신 간단한 응답을 반환한다는 것을 나타냅니다. 반환된 값은 $true
패턴을 찾거나 $null
패턴을 찾을 수 없는 경우입니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Raw
cmdlet이 MatchInfo 개체가 아닌 일치하는 문자열만 출력하도록 합니다. 이는 Unix grep 또는 Windows findstr.exe 명령과 가장 유사한 동작의 결과입니다.
이 매개 변수는 PowerShell 7에서 도입되었습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SimpleMatch
cmdlet이 정규식 일치가 아닌 단순 일치를 사용한다는 것을 나타냅니다. 단순 일치 Select-String
에서 Pattern 매개 변수의 텍스트 입력을 검색합니다. Pattern 매개 변수의 값은 정규식 문으로 해석되지 않습니다.
또한 SimpleMatch를 사용하면 반환된 MatchInfo 개체의 Matches 속성이 비어 있습니다.
참고 항목
이 매개 변수를 AllMatches 매개 변수 와 함께 사용하면 AllMatches 가 무시됩니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
메서드가 있는 모든 개체를 ToString()
이 cmdlet으로 파이프할 수 있습니다.
출력
기본적으로 이 cmdlet은 찾은 각 일치 항목에 대해 MatchInfo 개체를 반환합니다.
Quiet 매개 변수를 사용하는 경우 이 cmdlet은 패턴이 발견되었는지 여부를 나타내는 부울 값을 반환합니다.
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 *
관련 링크
PowerShell