본문 바로가기

IT Infra./Server

Powershell에서의 문자열 다루기 - 기초

Powershell을 다루다 보면 문자열 다루는데 많이 햇갈리셨죠? 근데 다행이도 Powershell이 .Net 기반이라 문자열 처리도 C#과 좀 많이 비슷합니다. 이번 포스팅은 코드에 주석을 달아서, 여기서 따로 설명은 안드리겠습니다.

 

아래 정도만 알면 기초적인 Powershell 스크립트 제작에 도움이 많이 되실 것입니다. ^^;

 

##############################

## 문자열 배열 ##

###########################################

# 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | #

#-----------------------------------------#

# a | b | c | d | e | f | g | h | i | j | #

###########################################

 

#1. Read-Host는 scanf 와 비슷한 속성을 가진 명령어입니다. (입력받음)

$input_text = Read-Host "문자열을 입력해 주세요"

 

#2. Write-Host는 printf 와 비슷한 속성을 가진 명령어입니다. (출력)

Write-Host "`n입력한 문자는 " $input_text "입니다."

 

# Chars(배열넘버)는 각 배열의 문자를 출력합니다.

Write-Host "`n첫번째 문자는 " $input_text.Chars(0) "두번째 문자는 " $input_text.Chars(1) " 입니다."

 

# Contains("문자 혹은 문자열")는 해당 String 내에서 정의한 문자 혹은 문자열이 있는지 검사합니다. (모든 배열 위치)

Write-Host "`n_를 포함하고 있나요? : (Bool 반환)" $input_text.Contains("_")

 

# Substring(배열넘버)는 해당 배열 넘버부터의 문자열을 출력합니다.

Write-Host "`n Substring 예시 1 : " $input_text.Substring(3)

 

# Substring(시작 배열넘버,끝 배열 넘버)는 시작 배열 넘버부터 끝 배열 넘버의 문자열을 출력합니다. 3부터 6까지요.

Write-Host "`n Substring 예시 2 : " $input_text.Substring(3,6)

 

# TrimStart("문자열")은 문자열의 시작점에 정의한 문자열이 있으면 제거합니다.

Write-Host "`n Trimstart 예시 : " $input_text.TrimStart("abc")

 

# Trimend("문자열")은 문자열의 끝부분에 정의한 문자열이 있으면 제거합니다.

Write-Host "`n Trimend 예시 : " $input_text.TrimEnd("hij")

 

# insert(시작배열,"문자열")은 시작배열 공간에 "문자열"을 추가합니다. (기존 문자열 삭제 되지 않음)

write-host "`n Insert 예시 : " $input_text.Insert(0,"opq")

 

# Replace("바꿀 문자열","바뀔 문자열")은 "바꿀 문자열"을 정한 후 "바뀔 문자열"로 치환됩니다.

Write-Host "`n Replace 예시 : " $input_text.Replace("efg", "xyz")

 

# Remove(배열넘버)는 시작 배열 뒤의 문자를 삭제합니다. (2라고 정의하면 0,1,2 다음의 문자열이 모두 삭제)

write-host "`n Remove 예시 : " $input_text.Remove(2)

 

# Remove(시작배열넘버,끝 배열 넘버)는 시작 배열 넘버 부터 끝 배열 넘버까지의 문자를 삭제합니다.

write-host "`n Remove 예시 2 : " $input_text.Remove(0,2)

 

# Startwith("문자열")은 정의한 문자열로 시작하는지 확인합니다. 맞다면 True, 틀리다면 False를 반환합니다.

Write-Host "`n Startwith 예시 (abc로 시작하나요?) : " $input_text.StartsWith("abc")

 

# Endswith("문자열")은 정의한 문자열로 끝나는지 확인합니다. 맞다면 True, 틀리다면 False를 반환합니다.

Write-host "`n Endwith 예시 (hij로 끝나나요?) : " $input_text.EndsWith("hij")

 

# PadLeft(숫자)는 숫자만큼의 공백 공간을 왼쪽방향에 추가합니다.

Write-host "`n Pad Left 예시 : " $input_text.PadLeft(20)

 

# PadRight(숫자)는 숫자만큼의 공백 공간을 오른쪽방향에 추가합니다.

Write-Host "`n Pad Right 예시 : " $input_text.PadRight(20)

 

# Length는 문자의 길이를 반환합니다.

 

write-host "`n Length 예시 : " $input_text.Length

 

#ToUpper()는 소문자인 문자열을 대문자로 변환합니다.

write-host "`n ToUpper 예시 : " $input_text.ToUpper()

 

#소문자로 변환할 대문자 문자열 정의

$Text_Upper="ABCDEFGHIJ"

 

#ToLower()는 대문자인 문자열을 소문자로 변환합니다.

Write-Host "`n ToLower 예시 : " $Text_Upper.ToLower()

 

 

아래는 실행 후 스크린샷 입니다. PadLeft와 PadRight는 확인하기가 어려워서 마우스 드래그를 하여 공백부분을 보이게 했습니다.

문자열은 abcdefghij 를 입력하였습니다.