A common scenario in an admin’s world is to figure out a way to find a certain snippet of text inside a string; called the substring. PowerShell makes finding a substring extremely easy.
관련 정보: 문자열 형식 및 문자열 확장 배우기
무료 라이브 트레이닝 발표 – PowerShell 여행 시작하기 – Johan Arwidmark가 제시하는 내용입니다. PowerShell 기술이 IT 경력을 향상시키는 방법을 이해하고 PowerShell로 시작하는 위치, 첫 번째 스크립트 작성, 그리고 라이브 트레이닝 환경에서 질문하기까지 배울 수 있습니다.
PowerShell과 문자열
PowerShell 세계에서 문자열은 따옴표로 둘러싸인 문자의 집합으로 구성됩니다. "foo"
및 'bar'
와 같은 문자열은 매우 일반적입니다.
관련 정보: 기초로 돌아가기: PowerShell 문자열
변수에 문자열을 정의했고 그 중 일부만 찾아야 하는 경우는 어떨까요? 예를 들어 주소가 1234 4번가인 문자열이 있다고 가정해 보겠습니다. 숫자를 뽑아내고 항상 처음 네 글자가 필요한 숫자임을 알고 싶을 것입니다. 이 경우 PowerShell substring()
메서드를 사용할 수 있습니다.
PowerShell SubString 메서드 사용
PowerShell에서 문자열 내에서 문자열을 찾으려면 Substring()
메서드를 사용할 수 있습니다. 이 메서드는 PowerShell의 모든 문자열 객체에서 찾을 수 있습니다.
예를 들어, 아마도 The quick brown fox jumped over the fence.
와 같은 문자열이 있을 수 있습니다. 처음 다섯 글자를 찾고 싶을 것입니다. Substring()
메서드를 사용하여 다음과 같이 수행할 수 있습니다:
Substring()
메서드에 전달할 첫 번째 인수는 가장 왼쪽 문자의 위치입니다. 이 경우, 가장 왼쪽 문자는 T
입니다. 두 번째 인수는 가장 오른쪽 문자의 위치입니다. 이 경우, 문자는 q
입니다.
Substring()
메서드는 그 사이의 모든 문자를 반환합니다.
다음은 실제 예시입니다:
다음과 같은 형식을 갖는 제품 코드가 있는 경우를 가정해 보겠습니다: XXXXVVVV-MM-DD-YYYY
. 모든 제품은 이 코드 형식을 갖고 있으며 이 형식에서 벗어나지 않습니다. 이제 이 코드를 생성한 재고 관리 소프트웨어가 데이터베이스에 생성된 날짜 필드를 포함하지 않았다고 가정해 보겠습니다.
그러나 소프트웨어는 항상 제품 코드 자체에 MM-DD-YYYY
로 이 날짜를 포함했으므로 우리는 이를 제품 코드에서 추론할 수 있습니다. 각 제품이 데이터베이스에 삽입된 날짜를 보여주기 위해 몇 가지 매우 불필요한 보고서를 관리에 표시해야 합니다. 이를 해결하는 좋은 방법은 다음과 같습니다.
이 예에서는 PowerShell의 SubString()
메서드를 내재된 문자열 객체에 사용하고 찾고자 하는 첫 번째 문자의 번호를 매개변수로 전달합니다.
자 정지 문자를 명시하지 않았으므로 문자열 끝까지 모든 문자를 원한다고 가정합니다. 첫 번째 위치에서 숫자를 찾기 위해 전체 제품 코드의 길이를 먼저 얻은 다음 그것에서 단순히 10을 빼는 것으로 시작합니다. 이 예에서는 문자열의 오른쪽에서 10 번째 문자부터 시작하고 그 오른쪽의 모든 것을 원한다는 것을 의미합니다.
The [DateTime]
형식은 게시물의 부분 문자열 주제와 반드시 관련이 없지만 특정 예제와 잘 어울릴 것 같습니다.
문자열 “11-12-2013″을 얻은 후에는 이를 [DateTime]
개체로 형변환하여 한 번은 어리석은 문자열이었던 것을 멋진 객체로 변환합니다. 여기서 우리는 이 객체에 대해 관리가 원하는 모든 멋진 날짜 산술을 수행하고 멋진 막대 차트 보고서를 생성할 수 있습니다!
길이 속성을 사용하여 부분 문자열을 동적으로 찾기
위의 예에서는 문자열 내의 문자의 시작 및 끝 위치를 정적으로 정의했습니다. 그러나 마지막 위치를 모를 경우 어떻게 될까요?
어쩌면 마지막 네 문자에서 부분 문자열을 찾아야 할 수 있습니다. 마지막 위치에서부터 시작하여 끝까지의 네 번째 위치에서 문자 세트를 찾아야 합니다. 검색 중인 문자열의 길이는 어떤 길이든 될 수 있습니다.
왼쪽에서 세는 양수로 끝 위치를 정의하는 대신 문자열의 길이를 사용하고 그 중 일정 수의 문자를 빼서 끝 위치를 동적으로 지정할 수 있습니다.
사용한 문자열 `$product_code = 'ABCD1234-11-12-2013'
`을 통해 마지막 네 글자를 찾고 싶을 수 있습니다. 다음과 같이하는 대신:
`0`을 `$product_code.Length - 4
`로 대체할 수 있으며 끝 위치를 전혀 사용하지 않아도 마지막 네 글자를 반환합니다.
끝 위치를 지정하지 않으면 PowerShell substring 메서드가 항상 마지막 문자 위치로 기본 설정됩니다.
문자열의 length
속성을 사용하여 문자열의 총 문자 수를 뺀 다음 해당 수를 사용하여 부분 문자열을 동적으로 선택할 수 있습니다.
무료 라이브 트레이닝을 소개합니다 – PowerShell 여정 시작 – Johan Arwidmark가 제공합니다. PowerShell 기술이 IT 커리어를 어떻게 향상시키는지 이해하고 PowerShell로 시작하는 방법, 첫 번째 스크립트를 작성하고 Johan에게 라이브 트레이닝 환경에서 직접 질문할 수 있습니다.