https://cafe.daum.net/candan/GGFN/466 다음 글 입니다.
https://learn.microsoft.com/ko-kr/powershell/module/microsoft.powershell.core/about/about_regular_expressions?view=powershell-7.3 여기에 [ -~] 물결 제거가 있다.
https://learn.microsoft.com/ko-kr/powershell/module/microsoft.powershell.core/about/about_special_characters?view=powershell-7.3
텝 `t 부분이다.(`은 물결이다)
https://github.com/oklokl/advfirewall-ip-list-firehol_level1.netset/blob/main/v14.bat
https://cafe.daum.net/candan/GGFN/386?svc=cafeapi
질문 방법.. 어려운 질문의 경우 전부 한번에 해결 하려고 하지 말고. A B 이런식으로 해서
AI가 이해 하기 쉽게.. 순화 해서 알려 주면 잘 이해 한다.
A 333
D
A 222
C
B
$lines = Get-Content 111.txt
$index = $lines.IndexOf("B") - 1
for ($i = $index; $i -ge 0; $i--) {
if ($lines[$i] -match "^A") {
$lines[$i]
break
}
}
# 성공
$lines = Get-Content 111.txt
$index = $lines.IndexOf("B") - 1
$result = for ($i = $index; $i -ge 0; $i--) {
if ($lines[$i] -match "^A") {
$lines[$i]
break
}
}
$result | Out-File -Encoding oem d:\888.txt
# 이것도 성공
하지만 한글이 들어간 문서의 경우 파일을 ROM으로 만들어 주어야 한다.
# d:\test.txt 파일을 UTF-8 인코딩으로 변환 이렇게 라면 ROM이 된다
Get-Content d:\111.txt -Encoding Default | Out-File -Encoding UTF8 d:\777.txt
위의 명령어에 작동 하게 하기 위해서는 이름을 다시
777.txt에서 111.txt로 바꺼야 한다. 기존 파일을 옴겨 놓거나 백업 하자
# 이렇게 하면 그냥 UTF-8 이 되는대 문제는 한글이 깨진다 위의 명령어를 사용 하면
Get-Content d:\111.txt -Encoding Default | Out-File -Encoding UTF7 d:\777.txt
# d:\test.txt 파일을 OEM 인코딩으로 변환
Get-Content d:\111.txt -Encoding Default | Out-File -Encoding OEM d:\777.txt
부분 성공
$lines = Get-Content 111.txt
$index = -1
foreach($line in $lines) {
if($line.Contains("`tB")) {
$index = $lines.IndexOf($line) - 1
break
}
}
if($index -ge 0) {
Write-Host "'B'를 찾았습니다. 인덱스: $index"
} else {
Write-Host "'B'를 찾지 못했습니다."
}
AI가 인식을 못해서 문자를 분할 해서 물어 봤다. 성공
B란 단어가 탭으로 떨어져 있는 경우다.
실패노트 이것은 실패
if($index -ge 0) {
Write-Host "'B'가 찾아졌습니다."
} else {
Write-Host "'B'가 찾아지지 않았습니다."
}
이렇게 하면 해당 단어를 잘 적용 하는지 알수 있다.
실패노트 이것은 실패
$lines = Get-Content 111.txt
$index = $lines.IndexOf("B") - 1
if($index -ge 0) {
Write-Host "'B'가 찾아졌습니다."
} else {
Write-Host "'B'가 찾아지지 않았습니다."
}
실패한 예문이다.
B가 문서에 맨 앞에 있어야만 인식 한다.
결국 완전 성공 했다
$lines = Get-Content 111.txt
$index = -1
foreach($line in $lines) {
if($line.Contains("`tB")) {
$index = $lines.IndexOf($line) - 1
break
}
}
for ($i = $index; $i -ge 0; $i--) {
if ($lines[$i] -match "^A") {
$lines[$i]
break
}
}
정규 표현식(regular expression)에서 [ -~]* 는 ASCII printable characters에 해당하는 모든 문자열을 나타내는 패턴입니다.
ASCII printable characters는 ASCII 문자 집합에서 공백을 포함한 모든 문자를 의미합니다. ASCII printable characters의 코드 범위는 0x20에서 0x7E까지입니다.
따라서, [ -~]*는 ASCII printable characters 범위에 해당하는 모든 문자열을 나타내는 정규 표현식 패턴입니다. 이러한 패턴은 문자열 검색, 치환 및 유효성 검사 등 다양한 용도로 사용됩니다.
물결 제거 하기