Wednesday, February 07, 2007
Perl/펄] 파일 끝에서부터 거꾸로 읽기; Text File Read Backward
텍스트 파일의 마지막 행을 첫 행으로 만들고, 첫 행을 맨 마지막 행으로 만드는 방법입니다.
즉, 파일 순서를 거꾸로 뒤집는 것입니다. 가령 다음과 같은 식입니다.
1행
2행
3행
을
3행
2행
1행
으로 만듭니다.
로그 파일 같은 경우에, 최신 내용이 맨 마지막에 위치하는데, 이 펄 스크립트를 사용하면, 최근 내용이 파일의 첫 부분에 오게 할 수 있습니다.
파일명: example.pl
<> 는, 명령행 옵션으로 지정해 준 텍스트 파일의 내용입니다.
그 내용을 reverse 로 뒤집습니다.
그 뒤집어진 각 행들을 foreach 루프로 돌리면서
print 로 출력하는 것입니다.
테스트용으로 쓸 텍스트 파일: test.txt
실행 결과 화면:
각 행들이 역순으로 되었습니다.
위의 출력 결과를 파일로 저장하려면
example.pl test.txt > out.txt
이렇게 재지향(Redirection)을 사용하면 됩니다.
즉, 파일 순서를 거꾸로 뒤집는 것입니다. 가령 다음과 같은 식입니다.
1행
2행
3행
을
3행
2행
1행
으로 만듭니다.
로그 파일 같은 경우에, 최신 내용이 맨 마지막에 위치하는데, 이 펄 스크립트를 사용하면, 최근 내용이 파일의 첫 부분에 오게 할 수 있습니다.
파일 행 순서, 역순으로 뒤집기 예제
파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;
my @a = <>;
chomp @a;
print "$_\n" foreach reverse @a;
use strict; use warnings;
my @a = <>;
chomp @a;
print "$_\n" foreach reverse @a;
<> 는, 명령행 옵션으로 지정해 준 텍스트 파일의 내용입니다.
그 내용을 reverse 로 뒤집습니다.
그 뒤집어진 각 행들을 foreach 루프로 돌리면서
print 로 출력하는 것입니다.
테스트용으로 쓸 텍스트 파일: test.txt
111
222
333
AAA
BBB
CCC
DDD
ZZZ
222
333
AAA
BBB
CCC
DDD
ZZZ
실행 결과 화면:
D:\Z>example.pl test.txt
ZZZ
DDD
CCC
BBB
AAA
333
222
111
D:\Z>
ZZZ
DDD
CCC
BBB
AAA
333
222
111
D:\Z>
각 행들이 역순으로 되었습니다.
위의 출력 결과를 파일로 저장하려면
example.pl test.txt > out.txt
이렇게 재지향(Redirection)을 사용하면 됩니다.
tag: perl
Perl | 펄
<< Home