반응형
PowerShell에서 한 줄씩 파일 읽기
PowerShell에서 한 줄씩 파일을 읽고 싶습니다. 특히 파일을 반복하고 루프의 변수에 각 행을 저장하고 행에서 일부 처리를 수행하고 싶습니다.
나는 Bash에 해당하는 것을 알고 있습니다.
while read line do
if [[ $line =~ $regex ]]; then
# work here
fi
done < file.txt
PowerShell 루프에 대한 문서는 많지 언어.
PowerShell 루프에 대한 문서는 많지 언어.
PowerShell에서의 루프에 문서가 풍부하고, 다음 도움말 항목을 체크 아웃 할 수 있습니다 : , , , .about_For
about_ForEach
about_Do
about_While
foreach($line in Get-Content .\file.txt) {
if($line -match $regex){
# Work here
}
}
문제에 대한 또 다른 관용적 PowerShell 솔루션은 텍스트 파일의 행을 ForEach-Object
cmdlet으로 파이프하는 것입니다 .
Get-Content .\file.txt | ForEach-Object {
if($_ -match $regex){
# Work here
}
}
루프 내에서 일치하는 정규식 대신에 관심있는 라인 만 필터링하기 위해 라인을 파이프 할 수 있습니다.Where-Object
Get-Content .\file.txt | Where-Object {$_ -match $regex} | ForEach-Object {
# Work here
}
Get-Content
성능이 좋지 않습니다. 한 번에 파일을 메모리로 읽어들이려고합니다.
C # (. NET) 파일 기는 각 줄을 하나씩 읽습니다.
최고의 공연
foreach($line in [System.IO.File]::ReadLines("C:\path\to\file.txt"))
{
$line
}
또는 약간 덜 성능
[System.IO.File]::ReadLines("C:\path\to\file.txt") | ForEach-Object {
$_
}
이 foreach
증거는 약간 더 빠를 것입니다 ForEach-Object
(자세한 내용은 아래 주석 참조).
만능 스위치는 여기에서 잘 작동합니다.
'one
two
three' > file
$regex = '^t'
switch -regex -file file {
$regex { "line is $_" }
}
다수 :
line is two
line is three
참고 URL : https://stackoverflow.com/questions/33511772/read-file-line-by-line-in-powershell
반응형
'ProgramingTip' 카테고리의 다른 글
Gmail에서 메일을 작성하기위한 URL (전체 Gmail 인터페이스 및 숨은 참조, 제목 등으로 지정됨) (0) | 2020.10.18 |
---|---|
ASP.NET ID에서 클레임을 업데이트하는 방법은 무엇입니까? (0) | 2020.10.18 |
Xcode 4에서 클래스 접두사를 변경하는 방법은 무엇입니까? (0) | 2020.10.18 |
방금 호출 한 오류의 줄 번호를 인쇄하는 Golang 프로그램을 어떻게 얻었습니까? (0) | 2020.10.18 |
virtualbox 원시 모드는 Hyper-V Windows 10에서 사용할 수 없습니다. (0) | 2020.10.18 |