https://cafe.daum.net/candan/GGFN/465 이전 글 입니다.
https://youtu.be/Hl1bO_JDroY 영상으로 설명 하기
아래와 같이.. BB가 중간에 들어 간 경우 찾기
$lines = Get-Content 111.txt
$index = -1
foreach($line in $lines) {
if($line.Contains("BB")) {
$index = $lines.IndexOf($line) - 1
break
}
}
if($index -ge 0) {
$result = $lines[$index].Replace("A", "")
Write-Host "$result를 찾았습니다. 결과: 원하는 결과"
} else {
Write-Host "'BB'를 찾지 못했습니다."
}
그럼 우리가 하고자 하는 것을 결합 해보자.
for ($i = $index; $i -ge 0; $i--) {
if ($lines[$i] -match "^A") {
$lines[$i]
break
}
}
A 부분이 현재 줄 부터 위로 A를 찾으라는 것이라서.. 아래 처럼 난 인스턴스 단어를 찾아야 하니 이렇게 해주니 성공 하였다.
$lines = Get-Content 777.txt
$index = -1
foreach($line in $lines) {
if($line.Contains("SM 버스 컨트롤러")) {
$index = $lines.IndexOf($line) - 1
break
}
}
for ($i = $index; $i -ge 0; $i--) {
if ($lines[$i] -match "^인스턴스") {
$lines[$i]
break
}
}
아래의 문장은 출력 할때 888.txt로 출력 하라는 문장 입니다.
$lines = Get-Content 777.txt
$index = -1
foreach($line in $lines) {
if($line.Contains("SM 버스 컨트롤러")) {
$index = $lines.IndexOf($line) - 1
break
}
}
for ($i = $index; $i -ge 0; $i--) {
if ($lines[$i] -match "^인스턴스") {
$result = $lines[$i]
break
}
}
$result | Out-File -Encoding UTF8 d:\888.txt