2013年8月16日金曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2)の13章(ディレクトリ操作)の13.13(練習問題)5を解いてみる。

その他参考書籍

5.

コード(BBEdit)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
use utf8;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
use File::Basename;
use File::Spec;

my($src, $dest) = @ARGV;

$dest = File::Spec->catfile($dest, basename $src) if -d $dest;

rename $src => $dest or die "can't rename $src to $dest: $!";

入出力結果(Terminal)

$ ls tmp*
tmp.txt

tmp_folder:
sample.pl sample_folder some_folder
$ ./sample.pl tmp.txt tmp1.txt
$ ls tmp*
tmp1.txt

tmp_folder:
sample.pl sample_folder some_folder
$ ./sample.pl tmp1.txt tmp_folder
$ ls tmp*
sample.pl sample_folder some_folder tmp1.txt
$ ./sample.pl ./tmp_folder/tmp1.txt .
$ ls tmp*
tmp1.txt

tmp_folder:
sample.pl sample_folder some_folder
$

ちなみにpython3.3の場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
## Copyright (C) 2013 by kamimura
#-*- coding: utf-8 -*-

import os, sys

src = sys.argv[1]
dest = sys.argv[2]

if os.path.isdir(dest):
    dest = os.path.abspath(dest) + os.path.sep + os.path.basename(src)

os.rename(src, dest)

入出力結果(Terminal)

$ ls tmp*
tmp.txt

tmp_folder:
sample.pl sample_folder some_folder
$ ./sample.py tmp.txt tmp1.txt
$ ls tmp*
tmp1.txt

tmp_folder:
sample.pl sample_folder some_folder
$ ./sample.py tmp1.txt tmp_folder
$ ls tmp*
sample.pl sample_folder some_folder tmp1.txt
$ ./sample.py tmp_folder/tmp1.txt .
$ ls tmp*
tmp1.txt

tmp_folder:
sample.pl sample_folder some_folder
$

0 コメント:

コメントを投稿