Powershell을 사용하여 텍스트 파일 정리

Powershell을 사용하여 텍스트 파일 정리

이 문제로 어려움을 겪고 누군가가 도움을 줄 수 있는지 궁금합니다. 제거하고 싶은 추가 데이터가 포함된 대용량 텍스트 파일이 있습니다. 다음은 입력 파일의 샘플입니다.

Text In Page - 1

S
Dept
l<m RKB)
"1915
slightly 234234
"sil dsf 56
"gr
gl
1920 100
1925 100
1930 100 Cls
"1935 100 Cl


Text In Page - 2

l<m RKB)
"1915
slightly
"sil
"gr
glauc
1920 100
1925 100
1930 100 Cls
"1935 100 Cl

다음을 제거하고 싶습니다.

  • 빈 줄
  • 줄 시작 부분에 "
  • 문자 AZ, az로 시작하는 모든 줄

위의 예에서는 다음과 같이 남습니다.

1915
1920 100
1925 100
1930 100 Cls
1935 100 Cl
1915
1920 100
1925 100
1930 100 Cls
1935 100 Cl

답변1

나는 생각 중입니다:

(gc D:\test.txt) -replace '^"' | sls '\S' | sls -NotMatch '^[A-Za-z]' | sc out.txt

이는 다음을 수행합니다.

  • 파일의 줄을 가져오고 첫 번째 문자가 따옴표이면 아무 것도 바꾸지 마십시오.
  • "공백 아님"과 일치하는 행을 선택하십시오(즉, 빈 행은 필터링됩니다).
  • A-Za-z로 시작하지 않는 줄을 선택하세요
  • 결과를 out.txt에 씁니다.

파이프라인을 사용하여 체인을 연결하는 것과 변수를 반복해서 작업하는 것을 얼마나 좋아하는지에 따라 긴 버전을 작성하는 다양한 방법이 있지만 다음과 같이 수행됩니다.

$lines = Get-Content D:\test.txt
$lines = $lines -replace '^"'
$lines = $lines | Select-String '\S'
$lines = $lines | Select-String -NotMatch '^[A-Za-z]'
$lines | Set-Content out.txt

관련 정보