| [ CnUnix ] in KIDS 글 쓴 이(By): terzeron (microkid) 날 짜 (Date): 2002년 3월 29일 금요일 오후 03시 59분 13초 제 목(Title): Re: [Q] sed 에서 .. #!/usr/bin/perl while (<>) { if (/^A/) { $c = 1; } if (!$c) { print; } else { if (/^B/) { $c = 0; } } } 를 파일(test.pl)로 저장해서 실행해보세요. perl test.pl ORG.TXT > NEW.TXT A라는 문자열이 나오는 행부터 B라는 문자열이 나오는 행까지 모두 지웁니다. 행단위로 지운다는 거니까 XY CA DE FG HB AB 라는 입력에 대해서는 XY만 나오게 될 겁니다. 그리고 A만 나오고 B가 나오지 않아도 친절하게도(?) 모두 지워줍니다. ^^ 문제는... 예를 들어 C의 주석인 /* */을 모두 지우는 작업을 한다고 치면 행의 모든 내용을 지우면 안 되고 주석부분만 지워야 하니까 perl의 특수 환경 변수를 좀 써야 합니다만... 이런 걸 원하시나요? |