문자열에서 PowerShell 서브 문자열 추출하는 방법
-
Substring()
메서드를 사용하여 PowerShell 서브스트링 추출하기 - 문자열의 왼쪽에서 PowerShell 서브스트링 추출하기
- 특정 문자 전후에서 PowerShell 서브스트링 추출하기
- 두 문자 사이에서 PowerShell 서브스트링 추출하기

이 기사는 PowerShell에서 문자열에서 서브스트링을 추출하는 방법을 설명합니다. 서브스트링은 문자열의 일부에 불과합니다.
PowerShell에서는 Substring()
및 split()
메서드를 사용하여 서브스트링을 만들 수 있습니다. 예를 들어, 문자열 Delftstack.com
이 있다면 Delftstack
은 서브스트링이고 com
은 또 다른 서브스트링입니다.
이 기사에서는 Substring()
메서드에 대해 논의할 것입니다.
Substring()
메서드를 사용하여 PowerShell 서브스트링 추출하기
먼저 Substring()
메서드의 구문을 살펴보겠습니다.
string.Substring(int startIndex, int length)
구문의 int
는 startIndex
와 length
를 인덱스 번호로 표시합니다. startIndex
는 우리가 추출하려는 서브스트링의 첫 번째 문자를 나타내고, length
는 문자열에서 우리가 추출하고자 하는 문자 수입니다.
우리는 서브스트링의 startIndex
와 length
를 결정하기 위해 IndexOf
메서드를 사용합니다.
IndexOf
의 결과값에 1
을 더하여 startIndex
를 결정합니다. 예를 살펴보겠습니다.
ned.delftstack.com
이 우리의 문자열이라고 가정할 때, 문자열에서 첫 번째 문자 n
의 인덱스 위치는 무엇입니까? 다음 명령어를 실행하여 위치를 확인할 수 있습니다:
"ned.delftstack.com".IndexOf('n')
결과는 0
입니다. 이는 IndexOf
메서드가 문자열의 첫 번째 발생을 왼쪽에서 오른쪽으로 검색하고 항상 0에서 시작하기 때문입니다.
따라서, 만약 문자 n
에서 시작하는 서브스트링을 추출하고자 한다면, 우리의 startIndex
는 0이 될 것입니다.
LastIndexOf
를 사용하여 문자열의 마지막 발생 위치를 찾을 수도 있습니다. 예를 들어, 문자 d
의 마지막 발생은 다음과 같을 것입니다:
"ned.delftstack.com".LastIndexOf('d')
이 기본 정보는 PowerShell에서 문자열을 다룰 수 있게 해줍니다.
문자열의 왼쪽에서 PowerShell 서브스트링 추출하기
위의 정보를 활용해 봅시다.
ned.delftstack.com
에서 서브스트링 ned
를 추출하고자 한다면 어떻게 할까요?
먼저 ourstrng
이라는 변수에 우리의 문자열을 저장하겠습니다.
$ourstrng = "ned.delftstack.com"
Substring()
메서드의 구문에서 우리의 명령어는 다음과 같습니다:
$ourstrng.Substring(0, 3)
이렇게 하면 startIndex
가 0
이고 length
가 3자이기 때문에 ned
가 반환됩니다. 만약 우리의 목표가 문자열에서 delftstack
을 추출하는 것이라면 어떻게 될까요?
첫 번째 단계는 서브스트링의 startIndex
를 결정하는 것입니다. 이 경우, 우리는 구분자인 첫 번째 마침표를 사용할 것입니다.
$ourstrng.IndexOf(".")
결과는 3
이 될 것입니다. 하지만 기억하실 수 있듯이, 문자열의 첫 문자를 위해 결과에 1
을 더하기 때문에 우리의 startIndex
는 4
가 됩니다.
길이는 서브스트링이 가져야 할 문자 수로, 1부터 계산할 것입니다. 서브스트링 delftstack
은 10
자입니다.
$ourstrng.Substring(4, 10)
이렇게 하면 delftstack
이 반환됩니다.
특정 문자 전후에서 PowerShell 서브스트링 추출하기
ned
와 delftstack.com
두 개의 서브스트링을 문자열에서 추출하고자 한다면 어떻게 할까요?
먼저, 우리의 구분자인 첫 번째 .
의 위치를 결정해야 합니다. 아래 명령어는 구분자를 $sepchar
라는 변수에 저장합니다.
$sepchar = $ourstrng.IndexOf(".")
서브스트링을 추출하기 위해 아래 명령어를 실행하겠습니다:
$ourstrng.Substring(0, $sepchar)
이렇게 하면 첫 번째 부분인 ned
가 추출됩니다. 다른 서브스트링을 위해서는 다음을 실행하겠습니다:
$ourstrng.Substring($sepchar + 1)
이렇게 하면 deftstack.com
이 반환됩니다.
두 문자 사이에서 PowerShell 서브스트링 추출하기
만약 문자열이 ned.delftstack.com
이라면, 서브스트링은 첫 번째와 두 번째 마침표 사이에 위치한 delftstack
이 됩니다. 이러한 스크립트는 세 개의 명령어가 필요합니다.
첫 번째 명령어는 첫 번째 마침표 (.)
의 위치를 결정하고 이를 firstsep
변수에 저장합니다.
$firstsep = $ourstrng.IndexOf(".")
두 번째 명령어는 LastIndexOf
메서드를 사용하여 두 번째 마침표의 위치를 결정하고 이를 lastrep
변수에 저장합니다.
$lastrep = $ourstrng.LastIndexOf(".")
마지막 명령어는 문자열에서 서브스트링 delftstack
을 추출합니다.
$ourstrng.Substring($firstsep + 1, $lastrep - 4)
결론적으로, PowerShell 구분자 전후 및 사이에서 문자열에서 서브스트링을 추출할 수 있습니다. 위에서 보았듯이 Substring()
메서드는 매우 유용합니다.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn