PowerShell(파워쉘)명령어 파일 내 문자열 찾기 (값 추출)
PowerShell Command Find a string in a file (Extract a Value)
특정 파일 내에서 내가 찾고자 하는 문자열을 출력하는 방법에 대해 알아보겠습니다.
1. 문자열 찾기
Select-String이라는 명령어로 찾을 수 있습니다.
명령어:
Select-String "AGENT_HOME=" C:\tistorytest\conf\testConfig.txt
설명:
결과 값에 파일명과 행의 위치가 같이 출력됩니다.
문자만 출력되도록 해보겠습니다.
2. 불필요한 문자 필터링
명령어:
Select-String "AGENT_HOME=" C:\tistorytest\conf\$ENV_FILENAME | foreach{$_.line}
나온 결과값을 foreach문(ForEach-Object 명령어와 동일) 으로 반복해서 line(결과만) 출력하도록 합니다.
🧐 $_.Linenumber 또는 $_. Filename을 입력하면 행 수, 파일명만 출력됩니다.
config 파일 같은 경우 임시로 주석처리를 해 놓는 경우가 많습니다.
나중에 기억하기 위함이죠
주석으로 입력된 값은 불러오지 않는 방법을 알아보겠습니다.
3. 주석값 필터링
명령어:
Select-String "AGENT_HOME=" C:\tistorytest\conf\testConfig.txt | foreach{$_.line} | ?{$_ -notmatch '^#'}
?{$_ -notmatch '^#'} 구문을 추가하여 '#'으로 시작하는 행은 Select-String 결과값에서 제외합니다.
?는 Where-Object 와 동일한 명령어입니다.
주석 값을 제외시켰으니 이제 변수의 값만 추출해보겠습니다.
4. 변수 값 추출
문자열 자르기 (split)을 통해 쉽게 구현할 수 있습니다.
명령어:
Select-String "AGENT_HOME=" C:\tistorytest\conf\testConfig.txt | foreach{$_.line} | ?{$_ -notmatch '^#'} | ForEach-Object { ([string]$_).Split("=")[1] }
ForEach-Object { ([string]$_).Split("=")[1] } 구문을 추가해 줍니다.
앞서 나온 결과값을 "=" 문자열 기준으로 배열로 나누고 1번째 배열의 값을 출력합니다.
짠 🎉 드디어 원하는 결과값을 추출해 내었습니다.
PowerShell(파워쉘) 파일 라인 수 출력 (Feat. 파일 변화 모니터링, Length & Tail) (1) | 2023.07.01 |
---|---|
PowerShell(파워쉘) 날짜 포맷 변경 및 날짜 계산하기 (0) | 2023.06.29 |
PowerShell(파워쉘) 파일 내 특정문자 내용 변경하기 (Replace) (0) | 2023.06.28 |
PowerShell(파워쉘)명령어 현재 폴더 위치 및 문자열 치환하기 (0) | 2023.06.22 |
PowerShell(파워쉘) 실행 옵션(인자) 입력받기 (0) | 2023.06.21 |