2017-01-04 3 views
2

두 개의 텍스트 파일을 비교하기 위해 PowerShell 스크립트를 작성했습니다. file1에서 데이터가 정리됩니다. 그러나 file2에서는 데이터가 정리되지 않습니다. 나는 보통 데이터를 수동으로 구성합니다. 그러나 이제 데이터가 증가합니다. PowerShell을 사용하여 구성을 자동화해야합니다.텍스트 파일의 특정 텍스트 읽기

PowerShell은 두 개의 특수 문자 사이에서 데이터를 읽어야합니다. 예 : <****@이 내 데이터입니다. **** 만 읽어야합니다. 이 패턴은 'n'번 반복됩니다.

답변

1

정규 표현식 <(.*?)@을 사용하여 관련 하위 문자열을 찾습니다. .*?< 사이의 모든 문자와 일치하고 @ (비 탐욕적/최단 일치)의 다음 문자를 찾습니다. 괄호는 일치 그룹을 캡처 그룹에 넣으므로 나중에 참조 할 수 있습니다.

Select-String -Path 'C:\path\to\file2.txt' -Pattern '<(.*?)@' -AllMatches | 
    Select-Object -Expand Matches | 
    ForEach-Object { $_.Groups[1].Value } 

$_.Groups[1]는 매치 제 포착기를 나타낸다.

+1

Typo in the regex? ' '<(. *?) q'' – sodawillow

+0

@sodawillow 헤즈 업에 감사드립니다. 결정된. –

관련 문제