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
Select-String
cmdlet은 정규식 일치를 사용하여 입력 문자열 및 파일에서 텍스트 패턴을 검색합니다. UNIX 또는 Windows의 findstr.exe
grep
유사한 Select-String
사용할 수 있습니다.
Select-String
텍스트 줄을 기반으로합니다. 기본적으로 Select-String
각 줄에서 첫 번째 일치 항목을 찾고 각 일치 항목에 대해 일치 항목이 포함된 줄의 파일 이름, 줄 번호 및 모든 텍스트를 표시합니다.
Select-String
줄당 여러 일치 항목을 찾도록 지시하거나, 일치 항목 전후에 텍스트를 표시하거나, 일치 항목이 있는지 여부를 나타내는 부울 값(True 또는 False)을 표시할 수 있습니다.
Select-String
모든 텍스트 일치를 표시하거나 각 입력 파일의 첫 번째 일치 후 중지할 수 있습니다.
Select-String
사용하여 지정된 패턴과 일치하지 않는 모든 텍스트를 표시할 수 있습니다.
유니코드 텍스트 파일을 검색하는 경우와 같이 Select-String
특정 문자 인코딩이 예상되도록 지정할 수도 있습니다.
Select-String
BOM(바이트 순서 표시)을 사용하여 파일의 인코딩 형식을 검색합니다. 파일에 BOM이 없으면 인코딩이 UTF8이라고 가정합니다.
예제
예제 1: 대/소문자 구분 일치 찾기
이 예제에서는 파이프라인에서 Select-String
cmdlet으로 전송된 텍스트의 대/소문자를 구분하는 일치를 수행합니다.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
Hello 및 HELLO 텍스트 문자열은 파이프라인을 Select-String
cmdlet으로 보냅니다.
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
및 Get-Command
Out-File
cmdlet과 함께 사용하여 현재 디렉터리 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
Select-String
cmdlet은 경로 및 패턴 두 개의 매개 변수를 사용합니다.
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 및 Pattern 매개 변수를 사용합니다.
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'
Get-WinEvent
cmdlet은 LogName 매개 변수를 사용하여 애플리케이션 로그를 지정합니다.
MaxEvents 매개 변수는 로그에서 50개의 가장 최근 이벤트를 가져옵니다. 로그 콘텐츠는 $Events
변수에 저장됩니다.
$Events
변수는 파이프라인을 Select-String
cmdlet으로 보냅니다.
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
Get-Command
cmdlet은 파이프라인 아래로 개체를 Out-File
전송하여 현재 디렉터리에 Command.txt 파일을 만듭니다.
Select-String
Path 매개 변수를 사용하여 Command.txt 파일을 지정합니다.
Pattern 매개 변수는 가져오기 및 설정 검색 패턴으로 지정합니다.
NotMatch 매개 변수는 결과에서 가져오기 및 set 제외합니다.
Select-String
가져오기 또는 설정포함하지 않는 출력을 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
Get-Command
cmdlet은 파이프라인 아래로 개체를 Out-File
전송하여 현재 디렉터리에 Command.txt 파일을 만듭니다.
Select-String
Path 매개 변수를 사용하여 Command.txt 파일을 지정합니다.
Pattern 매개 변수는 Get-Computer
검색 패턴으로 지정합니다.
Context 매개 변수는 전후의 두 값을 사용하며 출력에서 패턴 일치를 꺾쇠 괄호(>
)로 표시합니다.
Context 매개 변수는 첫 번째 패턴 일치 전의 두 줄과 마지막 패턴 일치 후 세 줄을 출력합니다.
예제 9: 모든 패턴 일치 항목 찾기
이 예제에서는 AllMatches 매개 변수가 텍스트 줄에서 각 패턴 일치 항목을 찾는 방법을 보여 줍니다. 기본적으로 Select-String
텍스트 줄에서 패턴의 첫 번째 발생만 찾습니다. 이 예제에서는 Get-Member
cmdlet에서 찾은 개체 속성을 사용합니다.
$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
Get-ChildItem
cmdlet은 Path 매개 변수를 사용합니다.
Path 매개 변수는 PowerShell 디렉터리를 지정하는 변수 $PSHOME
사용합니다. 경로의 나머지 부분에는 하위 디렉터리 en-US 포함되며 디렉터리의 각 *.txt
파일을 지정합니다.
Get-ChildItem
개체는 $A
변수에 저장됩니다.
$A
변수는 파이프라인을 Select-String
cmdlet으로 보냅니다.
Select-String
Pattern 매개 변수를 사용하여 각 파일에서 PowerShell 문자열을 검색합니다.
PowerShell 명령줄에서 $A
변수 내용이 표시됩니다. PowerShell 두 개의 문자열이 포함된 줄이 있습니다.
$A.Matches
속성은 각 줄에서 PowerShell 패턴의 첫 번째 항목을 나열합니다.
$A.Matches.Length
속성은 각 줄에서 PowerShell 패턴의 첫 번째 발생 횟수를 계산합니다.
$B
변수는 동일한 Get-ChildItem
및 Select-String
cmdlet을 사용하지만 AllMatches 매개 변수를 추가합니다.
AllMatches 각 줄에서 PowerShell 패턴의 각 항목을 찾습니다.
$A
및 $B
변수에 저장된 개체는 동일합니다.
$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 개체를 하나만 내보내지만 개체의 Match 속성에는 모든 일치 항목이 포함됩니다.
메모
이 매개 변수는 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
위해 파이프라인 아래로 문자열을 보내는 것과 다릅니다.
둘 이상의 문자열을 Select-String
cmdlet으로 파이프하면 각 문자열에서 지정된 텍스트를 검색하고 검색 텍스트가 포함된 각 문자열을 반환합니다.
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의 grep
Windows의 findstr.exe
유사합니다.
Select-String
cmdlet의 sls
별칭은 PowerShell 3.0에서 도입되었습니다.
메모
PowerShell 명령 대한승인된 동사에 따르면 Select-*
cmdlet의 공식 별칭 접두사는 sl
아니라 sc
. 따라서 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 매개 변수는 부울 값(True 또는 False)을 반환하여 MatchInfo 개체 대신 일치하는 항목을 찾았는지 여부를 나타냅니다.
구를 일치시키는 경우 Select-String
시스템에 대해 설정된 현재 문화권을 사용합니다. 현재 문화권을 찾으려면 Get-Culture
cmdlet을 사용합니다.
MatchInfo 개체의 속성을 찾으려면 다음 명령을 입력합니다.
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *
관련 링크
PowerShell