
새 줄을 기반으로 Powershell에서 txt 문서를 분할하려고 합니다. 스크립트는 ''로 분할할 때 제대로 작동했지만 이제 [Environment]::NewLine을 사용하도록 변경했는데 마지막 줄만 선택하는 것 같습니다.
다음은 개행 문자로 분할되어야 하는 스크립트 부분입니다.
Get-Content C:\Bindings.txt | Foreach-Object{
$hostHeaders = $_.Split([Environment]::NewLine,
[StringSplitOptions]::RemoveEmptyEntries)
}
.txt 문서는 다음과 같습니다.
http:*:80:test.com
http:*:80:test2.com
http:*:80:test1.com
새 줄에서 분할하고 마지막 줄만 볼 수 있는 방법에 대한 아이디어가 있습니까? 아니면 뭔가 빠졌습니까?
답변1
당신을 위한 3가지 방법이 있어요
.txt 파일을 준비했어요
(Get-Content C:\temp\Bindings.txt)
http:*:80:test.com
http:*:80:test2.com
http:*:80:test1.com
이제 3가지 방법이 있습니다
(Get-Content C:\temp\Bindings.txt) -split"`r`n"
(Get-Content C:\temp\Bindings.txt) -split "[Environment]::NewLine"
(Get-Content C:\temp\Bindings.txt).Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries)
결과는 이렇습니다
http:*:80:test.com
http:*:80:test2.com
http:*:80:test1.com
답변2
아무것도 할 필요가 없습니다. 텍스트 파일에 대한 Get-Content의 기본 동작은 새 줄에서 분할하고 문자열 배열을 반환하는 것입니다.
PS C:\...\Can Delete 3>Get-Content data.txt
http:*:80:test.com
http:*:80:test2.com
http:*:80:test1.com
PS C:\...\Can Delete 3>$object = Get-Content data.txt
PS C:\...\Can Delete 3>$object.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\...\Can Delete 3>$object.count
3
PS C:\...\Can Delete 3>$object[0]
http:*:80:test.com
PS C:\...\Can Delete 3>$Object | Get-Member
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
...