Friday, February 02, 2007
Perl/펄 정규식] 줄바꿈 문자 제거, 개행 문자 삭제; Text File Remove Newline (Enter Key)
각 줄마다 엔터 키(Enter Key)가 쳐져 있는 텍스트 파일에서 정규식을 사용하여, 엔터 키(Enter Key)문자 즉 줄바꿈 문자를 모두 지우고, 한 줄로 이어 붙이는 방법입니다.
실은 줄바꿈 문자를 ", " 이렇게 쉼표+공백1개로 치환합니다.
파일명: example.pl
테스트용으로 사용할 텍스트 파일: test.txt
실행 결과 화면:
원본 파일인 test.txt 의 내용들은 각 행에 줄바꿈이 되어 있습니다. 즉 Enter키가 쳐져 있습니다.
그러나 출력 결과에서는 이제 줄바꿈이 없어지고, 한 줄로 이어져 있습니다. 다만, 콤마와 띄어쓰기용 공백을 넣어 분리해 주었습니다.
콤마 없이 완전히 이어 붙이려면,
$s =~ s/\n//g;
이렇게 코드를 고칩니다.
출력 결과를 텍스트 파일로 저장하려면
example.pl test.txt > out.txt
이렇게 재지향(Redirection)을 사용하면 됩니다.
정규식이 아닌 chomp 함수를 사용하여 위와 같은 작업을 하는 예제 소스입니다: ▶▶ Perl/펄] 텍스트 파일에서, 개행문자 제거, 한줄로 출력; Text File Delete Newline
실은 줄바꿈 문자를 ", " 이렇게 쉼표+공백1개로 치환합니다.
텍스트 파일 처리 소스: 정규식으로, 엔터 키(Enter Key) 지우기
파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;
# 명령행으로 지정한 텍스트 파일을,
# 통째로 하나의 배열에 저장
my $s = join "", <>;
# 줄바꿈 문자를 "쉼표+공백"으로 모두 치환
$s =~ s/\n/, /g;
# 결과 출력
print $s, "\n";
use strict; use warnings;
# 명령행으로 지정한 텍스트 파일을,
# 통째로 하나의 배열에 저장
my $s = join "", <>;
# 줄바꿈 문자를 "쉼표+공백"으로 모두 치환
$s =~ s/\n/, /g;
# 결과 출력
print $s, "\n";
테스트용으로 사용할 텍스트 파일: test.txt
1
2
3
4
5
6
7
8
9
10
11
12
자장면
탕수육
비빔면
2
3
4
5
6
7
8
9
10
11
12
자장면
탕수육
비빔면
실행 결과 화면:
D:\Z>example.pl test.txt
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 자장면, 탕수육, 비빔면,
D:\Z>
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 자장면, 탕수육, 비빔면,
D:\Z>
원본 파일인 test.txt 의 내용들은 각 행에 줄바꿈이 되어 있습니다. 즉 Enter키가 쳐져 있습니다.
그러나 출력 결과에서는 이제 줄바꿈이 없어지고, 한 줄로 이어져 있습니다. 다만, 콤마와 띄어쓰기용 공백을 넣어 분리해 주었습니다.
콤마 없이 완전히 이어 붙이려면,
$s =~ s/\n//g;
이렇게 코드를 고칩니다.
출력 결과를 텍스트 파일로 저장하려면
example.pl test.txt > out.txt
이렇게 재지향(Redirection)을 사용하면 됩니다.
정규식이 아닌 chomp 함수를 사용하여 위와 같은 작업을 하는 예제 소스입니다: ▶▶ Perl/펄] 텍스트 파일에서, 개행문자 제거, 한줄로 출력; Text File Delete Newline
tag: perl
Perl | 펄
tag: regex
정규식 | 정규표현식 | Regex | Regular Expression
<< Home