Saturday, March 31, 2007
Perl 펄] 패스에서, 디렉토리명/파일명/확장자 분리 추출; Split Path Name
풀 패스명은, "디렉토리명+파일명+확장자"로 구성되어 있습니다. 이것을 각각 나누어 추출하는 방법입니다.
File::Basename 모듈을 사용하면 됩니다. 펄의 기본 모듈이기에 별도로 설치해 줄 필요는 없습니다.
스크립트 파일명: example.pl
(※ 스크롤 박스 사용법: 박스 안을 마우스로 클릭한 후, 키보드의 좌우 화살표키를 누르면 양옆으로 움직일 수 있습니다. 박스에서 다시 나오려면, 박스 바깥의 아무곳이나 클릭하면 됩니다.)
정규식으로 파일 이름에서 확장자만 추출하는 방법: ▶▶ Perl 펄] 정규식 확장자 추출, 파일명에서; Regex Filename Extension
File::Basename 모듈을 사용하면 됩니다. 펄의 기본 모듈이기에 별도로 설치해 줄 필요는 없습니다.
File::Basename 모듈 사용법 예제
스크립트 파일명: example.pl
(※ 스크롤 박스 사용법: 박스 안을 마우스로 클릭한 후, 키보드의 좌우 화살표키를 누르면 양옆으로 움직일 수 있습니다. 박스에서 다시 나오려면, 박스 바깥의 아무곳이나 클릭하면 됩니다.)
#!/usr/bin/perl
use strict; use warnings;
use File::Basename;
# 패스: My Jukebox 라는 디렉토리 밑의 "Cool Jazz.mp3" 라는 파일명
my ($fileNameOnly, $dir, $ext) = fileparse("My Jukebox/Cool Jazz.mp3", '\.[^.]*');
# 패스에서 디렉토리명만 구하기
print "<", $dir, ">\n";
# 출력 결과: <My Jukebox/>
# 패스에서 파일명만 구하기 (확장자 제외)
print "<", $fileNameOnly, ">\n";
# 출력 결과: <Cool Jazz>
# 패스에서 확장자만 구하기
print "<", $ext, ">\n";
# 출력 결과: <.mp3>
##########################
# 파일명만 간단히 얻기 (확장자 포함)
my $s = basename("/000/perl.pdf");
print $s, "\n";
# 출력 결과: perl.pdf
# 디렉토리명만 간단히 구하기
$s = dirname("/000/perl.pdf");
print $s, "\n";
# 출력 결과: /000
# 확장자만 별도로 구하기
$s = (fileparse("/000/perl.pdf", '\.[^.]*'))[2];
print $s, "\n";
# 출력 결과: .pdf
# 확장자 없는 파일에서 확장자를 구하면
$s = (fileparse("/000/Test", '\.[^.]*'))[2];
print "<", $s, ">\n";
# <> 이렇게 빈 문자열 출력
# 2중 확장자 파일명에서 진짜 확장자를 구하기
$s = (fileparse("Date.tar.gz", '\.[^.]*'))[2];
print "<", $s, ">\n";
# <.gz>
use strict; use warnings;
use File::Basename;
# 패스: My Jukebox 라는 디렉토리 밑의 "Cool Jazz.mp3" 라는 파일명
my ($fileNameOnly, $dir, $ext) = fileparse("My Jukebox/Cool Jazz.mp3", '\.[^.]*');
# 패스에서 디렉토리명만 구하기
print "<", $dir, ">\n";
# 출력 결과: <My Jukebox/>
# 패스에서 파일명만 구하기 (확장자 제외)
print "<", $fileNameOnly, ">\n";
# 출력 결과: <Cool Jazz>
# 패스에서 확장자만 구하기
print "<", $ext, ">\n";
# 출력 결과: <.mp3>
##########################
# 파일명만 간단히 얻기 (확장자 포함)
my $s = basename("/000/perl.pdf");
print $s, "\n";
# 출력 결과: perl.pdf
# 디렉토리명만 간단히 구하기
$s = dirname("/000/perl.pdf");
print $s, "\n";
# 출력 결과: /000
# 확장자만 별도로 구하기
$s = (fileparse("/000/perl.pdf", '\.[^.]*'))[2];
print $s, "\n";
# 출력 결과: .pdf
# 확장자 없는 파일에서 확장자를 구하면
$s = (fileparse("/000/Test", '\.[^.]*'))[2];
print "<", $s, ">\n";
# <> 이렇게 빈 문자열 출력
# 2중 확장자 파일명에서 진짜 확장자를 구하기
$s = (fileparse("Date.tar.gz", '\.[^.]*'))[2];
print "<", $s, ">\n";
# <.gz>
정규식으로 파일 이름에서 확장자만 추출하는 방법: ▶▶ Perl 펄] 정규식 확장자 추출, 파일명에서; Regex Filename Extension
tag: perl
Perl | 펄
<< Home