[Powershell] 텍스트 파일에서 특정 문자열이 포함된 줄을 확인하고 새로운 파일로 생성하는 방법 본문

프로그램/추가 팁

[Powershell] 텍스트 파일에서 특정 문자열이 포함된 줄을 확인하고 새로운 파일로 생성하는 방법

반응형

우선 파워쉘 명령어를 먼저 확인해 볼 필요가 있겠다.

1. Get-Content - 특정 경로에 대한 특정 또는 전체 파일에 대한 자료를 가져오는 명령어

2. Select-String - 1의 자료내에서 특정 문구를 찾는 명령어

3. set-content - 특정 파일로 생성하는 명령어

 

파워쉘 명령어의 구문을 확인하는 것도 괜찮겠지만 

그것을 다 확인하기에는 너무 많은 자료를 확인해야 하기 때문에 일단은 예시를 통해서 처리하는 방법을 알아보겠다.

 

 
여러 텍스트 파일에서 특정 문자열이 포함된 줄로 새로운 파일로 생성하는 방법
[원본 파일]
PS D:\imsi> dir 


해당 폴더에 이렇게 총 7개의 txt 파일이 존재한다고 가정하자.
여기 아래 모든 대상의 파일에 대해서 "sales_type": "100" 로 된 문구가 있는 줄을 찾아서 
동일 폴더에 get_list.txt 파일로 추출한다는 의미이다. 
문구는 작은 따옴표로 전체를 묶으면 된다.

Get-ChildItem -Path D:\imsi -Recurse | Select-String -Pattern '"sales_type": "100"' | set-content D:\imsi\get_list.txt

텍스트 파일에서 특정 문자열이 포함된 줄이 제거된 다른 줄로 새로운 파일로 생성하는 방법
List.txt 파일에서 ‘이수경’라는 문자열이 포함된 줄을 제외한 나머지 text 를 새로운 파일로 생성하는 방법이다.

[원본 파일]
PS D:\imsi> type .\list.txt
김수현
이수경, 이연희
전지현
김수현, 전지현
이연희
이연희, 김수현
이수경
전지현
김수현, 전지현, 이연희

PS D:\imsi> Get-Content .\list.txt | where-object {$_ -notmatch '이수경'} | set-content .\list_new.txt
텍스트 파일에서 뒤에서 몇줄만 조회하는 방법
텍스트 파일에서 마지막 n줄만 확인하는 방법이다.

D:\imsi> Get-Content .\list_new.txt -Tail 2
   

[출력결과]

전지현
김수현, 전지현, 이연희

만약 위 결과를 별도의 파일로 저장하고 싶다면 위 명령 뒤에 이어서 | Set-content NEW.TXT 라고 추가하면 된다.

 

보다 많은 파워쉘 명령어를 알고 싶다면 

아래의 사이트를 방문하여 하나하나 눌러서 확인할 수 있다.

 

파워쉘 명령어 참고 사이트

https://learn.microsoft.com/ko-kr/powershell/module/microsoft.powershell.management/get-content?view=powershell-7.3

반응형

프로그램/추가 팁 Related Articles

MORE

Comments