mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Friday, October 20, 2006

펄/Perl] 여러 개의 빈줄 삭제, 하나의 빈줄로 합치기, Collapse Multiple Blank Lines Into One


텍스트 파일에 여러 개의 불필요한 빈 줄이 많이 있으면, 읽기 힘들게 됩니다. 특히 갈무리한 파일의 경우에 그렇습니다.

이것은, 여러 개의 빈 줄을 하나의 빈 줄로 만드는 펄 스크립트입니다.

EmEditor울트라에디트(UltraEdit)의 Replace(문자열 치환)로, 빈 줄 지우기 작업을 해 보려고 했는데 잘 되지 않았습니다. 여러 개의 빈줄을 동시에 선택하기 위해서는 \n{2,} 이런 정규식이 있어야 하는데, 정규식에서는 \n{2,} 이런 것이 불가능한 것 같더군요. 한 시간 넘게 구글링을 해보았는데 해답이 없었습니다...


아무튼 그래서 펄로 이런 프로그램을 만들었습니다. 좀 불편하지만, 손으로 일일이 빈줄을 지우는 것보다는 훨씬 나을 것입니다.


텍스트 파일: 중복된 빈 줄(개행/줄바꿈문자) 제거, 하나로 만들기


파일명: delLines.pl
#!/usr/bin/perl
use strict; use warnings;


  my $count = 0;

  while (<>) {
    if (/^\s*$/) {
      $count++;
      print $_ if ($count < 2);
    }
    else {
      $count = 0;
      print $_;
    }

}

업데이트: 위의 소스를 더 간단히 만들었습니다: ▶▶ Perl/펄] 빈 줄 삭제, 중복된 빈 줄을 하나로 변환; Delete Empty Lines



테스트용 입력 파일: 0.txt
          청포도



                          이육사


내 고장 칠월은
청포도가 익어 가는 시절




이 마을 전설이 주저리주저리 열리고
먼 데 하늘이 꿈꾸며 알알이 들여와 박혀




하늘 밑 푸른 바다가 가슴을 열고
흰 돛단배가 곱게 밀려서 오면,

내가 바라는 손님은 고달픈 몸으로
靑袍를 입고 찾아온다고 했으니






내 그를 맞아, 이 포도를 따먹으면
두 손은 함뿍 적셔도 좋으련






아이야, 우리 식탁엔 은쟁반에
하이얀 모시 수건을 마련해 두렴




실행 결과:
D:\Z>delLines.pl 0.txt
          청포도

                          이육사

내 고장 칠월은
청포도가 익어 가는 시절

이 마을 전설이 주저리주저리 열리고
먼 데 하늘이 꿈꾸며 알알이 들여와 박혀

하늘 밑 푸른 바다가 가슴을 열고
흰 돛단배가 곱게 밀려서 오면,

내가 바라는 손님은 고달픈 몸으로
靑袍를 입고 찾아온다고 했으니

내 그를 맞아, 이 포도를 따먹으면
두 손은 함뿍 적셔도 좋으련

아이야, 우리 식탁엔 은쟁반에
하이얀 모시 수건을 마련해 두렴


D:\Z>


여러 개의 빈 줄들이 하나로 깨끗이 합쳐졌습니다.


위의 화면 출력 결과를 파일로 저장하려면,

delLines.pl 0.txt > out.txt

이렇게 하면, out.txt 라는 텍스트 파일로 저장됩니다.






중복된 줄을 모두 지우는 법: ▶▶ Perl/펄] 파일의 중복된 행 지우기; 같은 줄, 동일 값 제거, Remove Duplicate Lines Text File




tag: perl
Perl | 펄

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top