TVアニメ『ツルネ ―風舞高校弓道部―』PV第4弾
アニメ『ツルネ ―風舞高校弓道部―』
弓道かっこえええ。音はぜんぜん気になってなかったんですが、いい音するんですねえ、弦。
前回フォルダ名をファイル名に含ませるというファイル名変更で、たくさん手順を書いたのですが、手順が3段階ぐらいになったら、もう私などはとても覚えられません。
もっと簡単なのじゃないと仕事で使えません。
Perlでスクリプト生成ツールを作ってみましょう。
まずは、そのまま表示。
改行を削除した後、sayで改行付きprintします。
takk@deb9:~/tmp$ cat base | perl -nE'chomp; say $_'
結果です。
./gmp-6.1.2+dfsg/mpn/x86_64/aors_n.asm ./gmp-6.1.2+dfsg/tune/set_strs.c ./gmp-6.1.2+dfsg/mpn/sparc32/ultrasparct1/sqr_diagonal.asm ./gmp-6.1.2+dfsg/mpn/x86/fat/mod_1.c ./gmp-6.1.2+dfsg/mini-gmp/mini-gmp.h ./gmp-6.1.2+dfsg/mpn/lisp ./gmp-6.1.2+dfsg/mpf/out_str.c ./gmp-6.1.2+dfsg/mpn/x86/k7/gmp-mparam.h ./gmp-6.1.2+dfsg/mpz/aorsmul.c ./gmp-6.1.2+dfsg/cxx/osmpz.cc takk@deb9:~/tmp$
次に、元の行を2列にして表示します。
takk@deb9:~/tmp$ cat base | perl -nE'chomp;$n=$_;say"$n $n"'
結果。
./gmp-6.1.2+dfsg/mpn/x86_64/aors_n.asm ./gmp-6.1.2+dfsg/mpn/x86_64/aors_n.asm ./gmp-6.1.2+dfsg/tune/set_strs.c ./gmp-6.1.2+dfsg/tune/set_strs.c ./gmp-6.1.2+dfsg/mpn/sparc32/ultrasparct1/sqr_diagonal.asm ./gmp-6.1.2+dfsg/mpn/sparc32/ultrasparct1/sqr_diagonal.asm ./gmp-6.1.2+dfsg/mpn/x86/fat/mod_1.c ./gmp-6.1.2+dfsg/mpn/x86/fat/mod_1.c ./gmp-6.1.2+dfsg/mini-gmp/mini-gmp.h ./gmp-6.1.2+dfsg/mini-gmp/mini-gmp.h ./gmp-6.1.2+dfsg/mpn/lisp ./gmp-6.1.2+dfsg/mpn/lisp ./gmp-6.1.2+dfsg/mpf/out_str.c ./gmp-6.1.2+dfsg/mpf/out_str.c ./gmp-6.1.2+dfsg/mpn/x86/k7/gmp-mparam.h ./gmp-6.1.2+dfsg/mpn/x86/k7/gmp-mparam.h ./gmp-6.1.2+dfsg/mpz/aorsmul.c ./gmp-6.1.2+dfsg/mpz/aorsmul.c ./gmp-6.1.2+dfsg/cxx/osmpz.cc ./gmp-6.1.2+dfsg/cxx/osmpz.cc takk@deb9:~/tmp$
次は、$nは新ファイル名、$1はパス名、$_は、元のファイル名というように役割を決めます。そして3個並べる。
takk@deb9:~/tmp$ cat base | perl -nE'chomp;$n=$_;/^(.*\/)/;say"$_ $1 $n"'
結果。
./gmp-6.1.2+dfsg/mpn/x86_64/aors_n.asm ./gmp-6.1.2+dfsg/mpn/x86_64/aors_n.asm ./gmp-6.1.2+dfsg/mpn/x86_64/aors_n.asm ./gmp-6.1.2+dfsg/tune/set_strs.c ./gmp-6.1.2+dfsg/tune/set_strs.c ./gmp-6.1.2+dfsg/tune/set_strs.c ./gmp-6.1.2+dfsg/mpn/sparc32/ultrasparct1/sqr_diagonal.asm ./gmp-6.1.2+dfsg/mpn/sparc32/ultrasparct1/sqr_diagonal.asm ./gmp-6.1.2+dfsg/mpn/sparc32/ultrasparct1/sqr_diagonal.asm ./gmp-6.1.2+dfsg/mpn/x86/fat/mod_1.c ./gmp-6.1.2+dfsg/mpn/x86/fat/mod_1.c ./gmp-6.1.2+dfsg/mpn/x86/fat/mod_1.c ./gmp-6.1.2+dfsg/mini-gmp/mini-gmp.h ./gmp-6.1.2+dfsg/mini-gmp/mini-gmp.h ./gmp-6.1.2+dfsg/mini-gmp/mini-gmp.h ./gmp-6.1.2+dfsg/mpn/lisp ./gmp-6.1.2+dfsg/mpn/lisp ./gmp-6.1.2+dfsg/mpn/lisp ./gmp-6.1.2+dfsg/mpf/out_str.c ./gmp-6.1.2+dfsg/mpf/out_str.c ./gmp-6.1.2+dfsg/mpf/out_str.c ./gmp-6.1.2+dfsg/mpn/x86/k7/gmp-mparam.h ./gmp-6.1.2+dfsg/mpn/x86/k7/gmp-mparam.h ./gmp-6.1.2+dfsg/mpn/x86/k7/gmp-mparam.h ./gmp-6.1.2+dfsg/mpz/aorsmul.c ./gmp-6.1.2+dfsg/mpz/aorsmul.c ./gmp-6.1.2+dfsg/mpz/aorsmul.c ./gmp-6.1.2+dfsg/cxx/osmpz.cc ./gmp-6.1.2+dfsg/cxx/osmpz.cc ./gmp-6.1.2+dfsg/cxx/osmpz.cc takk@deb9:~/tmp$
最後に形を整えて出来上がり。1行の生成ツールができました。
takk@deb9:~/tmp$ cat base | perl -nE'chomp;$n=$_;$n=~s/\//_/g;$n=~s/^.//;/^(.*\/)/;say"mv $_ $1$n"'
結果です。
mv ./gmp-6.1.2+dfsg/mpn/x86_64/aors_n.asm ./gmp-6.1.2+dfsg/mpn/x86_64/_gmp-6.1.2+dfsg_mpn_x86_64_aors_n.asm mv ./gmp-6.1.2+dfsg/tune/set_strs.c ./gmp-6.1.2+dfsg/tune/_gmp-6.1.2+dfsg_tune_set_strs.c mv ./gmp-6.1.2+dfsg/mpn/sparc32/ultrasparct1/sqr_diagonal.asm ./gmp-6.1.2+dfsg/mpn/sparc32/ultrasparct1/_gmp-6.1.2+dfsg_mpn_sparc32_ultrasparct1_sqr_diagonal.asm mv ./gmp-6.1.2+dfsg/mpn/x86/fat/mod_1.c ./gmp-6.1.2+dfsg/mpn/x86/fat/_gmp-6.1.2+dfsg_mpn_x86_fat_mod_1.c mv ./gmp-6.1.2+dfsg/mini-gmp/mini-gmp.h ./gmp-6.1.2+dfsg/mini-gmp/_gmp-6.1.2+dfsg_mini-gmp_mini-gmp.h mv ./gmp-6.1.2+dfsg/mpn/lisp ./gmp-6.1.2+dfsg/mpn/_gmp-6.1.2+dfsg_mpn_lisp mv ./gmp-6.1.2+dfsg/mpf/out_str.c ./gmp-6.1.2+dfsg/mpf/_gmp-6.1.2+dfsg_mpf_out_str.c mv ./gmp-6.1.2+dfsg/mpn/x86/k7/gmp-mparam.h ./gmp-6.1.2+dfsg/mpn/x86/k7/_gmp-6.1.2+dfsg_mpn_x86_k7_gmp-mparam.h mv ./gmp-6.1.2+dfsg/mpz/aorsmul.c ./gmp-6.1.2+dfsg/mpz/_gmp-6.1.2+dfsg_mpz_aorsmul.c mv ./gmp-6.1.2+dfsg/cxx/osmpz.cc ./gmp-6.1.2+dfsg/cxx/_gmp-6.1.2+dfsg_cxx_osmpz.cc takk@deb9:~/tmp$
コメント