PowerShell에서 두 개의 텍스트 파일을 연결하는 방법은 무엇입니까?
이 기능을 복제하려고 합니다.cat
명령어를 사용합니다.
두 파일을 명시적으로 변수에 읽고 변수를 연결한 다음 연결된 변수를 쓰는 솔루션은 피하고 싶습니다.
및 cmdlet을 사용하면 됩니다.
Get-Content inputFile1.txt, inputFile2.txt | Set-Content joinedFile.txt
이 스타일로 3개 이상의 파일을 연결할 수도 있습니다.
소스 파일의 이름이 같은 경우는, 와일드 카드를 사용할 수 있습니다.
Get-Content inputFile*.txt | Set-Content joinedFile.txt
주 1: PowerShell 5 이전 버전에서는 에일리어스를 사용하여 이를 보다 간결하게 수행할 수 있었습니다.cat
그리고.sc
위해서Get-Content
그리고.Set-Content
각각 다음과 같다.단, 이러한 에일리어스는 문제가 있습니다.cat
*nix 시스템의 시스템명령어입니다.sc
는 Windows 시스템의 시스템명령어이므로 사용하지 않는 것이 좋습니다.sc
PowerShell Core(v7)에서는 정의되지 않습니다.PowerShell 팀은 일반적으로 별칭을 사용하지 않는 것이 좋습니다.
주 2: 와일드카드를 사용할 때는 주의해 주세요.inputFiles.txt
(또는 패턴과 일치하는 유사한) PowerShell이 무한 루프 상태가 됩니다! (방금 테스트했습니다.)
주 3: 다음 파일이 있는 파일로 출력>
는 문자 인코딩을 유지하지 않습니다.이 때문에,Set-Content
를 권장합니다.
사용 안 함>
; 문자 인코딩이 엉망이 됩니다.용도:
Get-Content files.* | Set-Content newfile.file
인cmd
다음과 같이 할 수 있습니다.
copy one.txt+two.txt+three.txt four.txt
PowerShell에서는 다음과 같습니다.
cmd /c copy one.txt+two.txt+three.txt four.txt
PowerShell의 방법은 gc를 사용하는 것이지만, 특히 대용량 파일의 경우 위의 방법이 매우 빠릅니다.또, ASCII 이외의 파일에서도, 를 사용해 사용할 수 있습니다./B
전환합니다.
Add-Content cmdlet을 사용할 수 있습니다.첫 번째 파일의 내용을 검색하지 않기 때문에 다른 솔루션보다 조금 빠를 수 있습니다.
gc .\file2.txt| Add-Content -Path .\file1.txt
명령 프롬프트에서 파일을 대조하려면
type file1.txt file2.txt file3.txt > files.txt
PowerShell이 변환하는 것은type
명령하다Get-Content
즉, 를 사용하면 에러가 발생합니다.type
PowerShell에서 명령어를 실행한다.Get-Content
명령어를 사용하려면 파일을 쉼표로 구분해야 합니다.PowerShell의 동일한 명령어는 다음과 같습니다.
Get-Content file1.txt,file2.txt,file3.txt | Set-Content files.txt
사용:
Get-Content c:\FileToAppend_*.log | Out-File -FilePath C:\DestinationFile.log
-Encoding ASCII -Append
이 부가 벌금.ASCII 인코딩을 추가하여 Notepad++에 표시되어 있는nul 문자를 삭제했습니다.
특정 매개 변수(예: 날짜 시간)로 파일을 정렬해야 하는 경우:
gci *.log | sort LastWriteTime | % {$(Get-Content $_)} | Set-Content result.log
다음과 같은 작업을 수행할 수 있습니다.
get-content input_file1 > output_file
get-content input_file2 >> output_file
서 ★★★★★>
[out-file],[out-file],[out-file],[out-file],[out-file],[out-file],[out-file],[out-file],[out-file].
다른 응답의 대부분은 (배관으로 인해) 형식이 잘못되어 있는 경우가 많기 때문에 가장 안전한 방법은 다음과 같습니다.
add-content $YourMasterFile -value (get-content $SomeAdditionalFile)
$SomeAdditionalFile의 내용을 변수로 읽는 것을 피하고 싶으신 것은 알지만, 예를 들어 새 줄 포맷을 저장하기 위해서는 필요 없는 적절한 방법이 없다고 생각합니다.
회피책은 $SomeAdditionalFile을 한 줄씩 루프하여 $YourMasterFile에 연결하는 것입니다.그러나 이는 지나치게 많은 리소스를 필요로 합니다.
부호화 및 행 끝을 유지하려면:
Get-Content files.* -Raw | Set-Content newfile.file -NoNewline
주의: AFIR. 오래된 Powershell에서는 파라미터가 지원되지 않습니다(<3?<4).
"파워셸 방식"은 다음과 같습니다.
set-content destination.log -value (get-content c:\FileToAppend_*.log )
언급URL : https://stackoverflow.com/questions/8749929/how-do-i-concatenate-two-text-files-in-powershell
'programing' 카테고리의 다른 글
합계(여기서 value입니다. (0) | 2023.04.11 |
---|---|
WPF 클래스 라이브러리의 어셈블리 전체/루트 수준 스타일 (0) | 2023.04.11 |
로컬 브런치가 추적하고 있는 리모트브런치를 특정합니다. (0) | 2023.04.11 |
프로세스 ID(PID)가 존재하는지 확인하는 방법 (0) | 2023.04.11 |
SQL Server에서 GETDATE()를 밀리초 단위로 인쇄하려면 어떻게 해야 합니까? (0) | 2023.04.11 |