펄 질문 - 개행문자 치환하기

eventia의 이미지

4r
 
1r
 
.
 
.
 
.
 
4r
 
4F
4A-
4c
 
.
 
.
 
.
 
4F
4A-
4c

어찌어찌해서 위와 같은 형태로 문자열을 만드는데 성공했습니다. 각각의 줄은 숫자+문자의 조합으로 이루어졌고, 숫자, 알파벳, #, -, .(dot) 를 사용합니다. 그런데 문제는 \n, 개행문자와 필요없는 .(dot)이 들어갔습니다.

s/\n\.\n/\n/g

이걸 써봐도 원하는 결과가 나오지 않는군요. 원하는 결과는 다음과 같습니다. 이걸 어떻게 치환해야 할지 s 명령어 한줄이면 될텐데,... 잘 모르겠군요.. ㅜ.ㅜ 또 막혔습니다. 도움을 구합니다.

4r
1r
4r
4F
4A-
4c
4F
4A-
4c

언어는 Perl 이고, 문자열 $str 에 들어 있다고 가정하고 알려주시면 감사하겠습니다...

Scarecrow의 이미지

s/^[.]*\n//g

정도로 하면 될 듯합니다.

eventia의 이미지

조금만 더 도와주세요.
s 구문에서 \n \t . 등의 메타문자(맞나요?)들이 들어갈 경우에 대한 설명이 일반적으로 볼수 있는 책에서는 잘 설명되어 있지 않은 듯 합니다.

http://codepad.org/LyG0H9Jx

소스를 직접 쳐서 확인할수 있게 해 두었습니다. 한번 살펴봐주시면 감사하겠습니다.

Scarecrow의 이미지

s/^[.]*\n//mg

vim에서는 되는데 perl이니 m을 붙혀줘야 겠군요.