ablog

不器用で落着きのない技術者のメモ

ファイルをリネームする Perl ワンライナー

やりたいこと

コード

$ perl -MFile::Copy -MFile::Find -e 'find sub{
	if(-f){
		$dst_dir="/home/oracle/work/dst";
		$src_file=$File::Find::name;
		if(@a=$src_file=~/^.*\/([a-z]+)\/total\/([eij]{1})\/hoge_([0-9]{8}\.csv)$/){
			$dst_file="$a[0]_$a[1]_$a[2]";
			copy($src_file, "$dst_dir/$dst_file");
		}elsif(@a=$src_file=~/^.*\/([a-z\-]+)\/total\/hoge_([0-9]{8}\.csv)$/){
			$dst_file="$a[0]_$a[1]";
			copy($src_file, "$dst_dir/$dst_file");
		}
	}
},@ARGV' /home/oracle/work/src