[ターミナルTerminal] 複数ファイルのファイル名に文字列を追加したり、置換したりするシェルスクリプト作った

2014/03/20

こんにちは。きんくまです。

ファイルがたくさんあって、ファイル名に文字列を追加したり、置換したくなるときがときどきあります。

例)
foo.txt -> foo_140320.txt
foo.txt -> abc_foo.txt

てな感じに日付をつけたり、接頭子をつけたりしたいです。
それをなんとか簡単にしたいなと思ってシェルスクリプト書いてみました。
ネットでいろいろと検索しつつ作りました。

※自己責任でお使いください。(ファイル名の置換なので大事なものはバックアップとっておくと良いと思います)
renamefiles >> ファイルをダウンロード

スクリプトの中身です。

#!/bin/sh

# Author: KinkumaDesign
# http://www.kuma-de.com

echo "¥n////////////////////////////¥n"
echo "    RENAME FILES SCRIPT"
echo "¥n////////////////////////////¥n"
echo "¥nselect mode¥n"
echo "1: Add string BEFORE filename¥t(ex. foo.txt => bar_foo.txt )"
echo "2: Add string AFTER filename ¥t(ex. foo.txt => foo_bar.txt )"
echo "3: Replace filename          ¥t(ex. foo.txt => bar.txt )¥n"
read MODE

if [ $MODE = "1" ] ; then
	echo "¥nmode 1: Add string BEFORE filename"
	echo "¥ninput argments¥n¥nfiles text¥nex) *.txt bar_¥n"
	read SELECTOR ADDEDTEXT
	for f in $SELECTOR;
	do
		NEWFN=`echo $f|sed -e "s/^/${ADDEDTEXT}/"`;
		echo "$f ¥t-> ${NEWFN}";
		mv "$f" "${NEWFN}";
	done
	echo "¥nrename completed!!¥n"
elif [ $MODE = "2" ] ; then
	echo "¥nmode 2: Add string AFTER filename"
	echo "¥ninput argments¥n¥nfiles text¥nex) *.txt _bar¥n"
	read SELECTOR ADDEDTEXT
	for f in $SELECTOR;
	do
		NEWFN=`echo $f | sed -e "s/¥(¥.[^.]*$¥)/${ADDEDTEXT}¥1/"`;
		echo "$f ¥t-> ${NEWFN}"
		mv "$f" "${NEWFN}";
	done
	echo "¥nrename completed!!¥n"	
elif [ $MODE = "3" ] ; then
	echo "mode 3: Replace filename"
	echo "¥ninput argments¥n¥nfiles find replace¥nex) *.txt foo bar¥n"
	read SELECTOR FINDTXT REPLACETXT
	for f in $SELECTOR;
	do
		NEWFN=`echo $f | sed -e "s/${FINDTXT}/${REPLACETXT}/g"`;
		echo "$f ¥t-> ${NEWFN}"
		mv "$f" "${NEWFN}";
	done
	echo "¥nrename completed!!¥n"	
else
	echo "mode is not found. exit"
	exit 1
fi
exit 0

使い方

まず実行権をつけます。

この投稿の続きを読む »

LINEで送る
Pocket

[AS3 / ANE] Dropbox Sync APIのiOSのANEを作ろうとしてplatform.xmlでハマったところ

2014/03/18

こんにちは。きんくまです。

仕事で、ANE作りは何個か作ったことがあってなんとなくわかったつもりだったんだけど、やっぱりわかってなくてすごく時間がかかった件についてです。
ANE作っている人はネットで検索してもあんまりいないけど、作る人は情報が合った方が助かると思うので書きます。

Dropbox Snyc APIのANEを作ろうとしたときのことです。

>> iOS Sync API – Dropbox

こういう外部のライブラリを使うときは、adtコマンドに組み込むplatform-options.xmlみたいなxmlを作る必要があります。

>> ネイティブライブラリの構築

細かい説明に入る前に、コンパイル、リンクなどを前に買ってあった入門書などで読み直してみました。

>> 猫でもわかるC++プログラミング 第2版 (猫でもわかるプログラミング) [単行本]
>> ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 [単行本]

実行ファイルができるまで

1. ソースファイル(例えば.c)をマシン語に変換
-> オブジェクトファイル(.o)ができる

2. ただ1でできたオブジェクトファイルはライブラリの部分(文字入出力など、そのプログラム上で使っているライブラリ)がマシン語に変換されていない状態
(UIKitとかもライブラリというかフレームワークというかとにかく外部のプログラム)

3. なので、マシン語に変換済みのライブラリのオブジェクトファイルと1のオブジェクトファイルを結合する必要がある。 -> リンカで行う(リンク作業)

4. リンク済みなので、実行可能なプログラムのできあがり!

という感じの流れです。

この投稿の続きを読む »

LINEで送る
Pocket

[html / JS] modern.IE 使ってみたよ

2014/03/12

こんにちは。きんくまです。

JavaScript案件もやってたりします。そこで困るのがIEのテスト環境です。
前はWin実機で、IETesterを使ってました。
で、Macに移ってParallels上でIETesterも使ってました。

そのうち、IEの9ぐらい?から開発者ツール(F12)がうまいことできるようになっていて、「ブラウザモード」「ドキュメントモード」を揃えるとある程度はエミュレートしてくれてました。
結構手軽で便利なので、使ってたんですがネットで検索してみると、精度的にはIETester > IE(開発者ツール)な感じみたい。

ただ、IETesterはたまに動作が不安定だったり、alertもでなかったりconsoleが使えなかったりで困ったなと。
さらにさらに、あんまり気にせずIE10からIE11にアップデートしたら、肝心の開発者ツールが全然使えない感じになっててショック!!を受けました。エミュレート機能が弱くなったっていうか、過去の方はほとんど駄目な感じ。あれタッチデバイスのエミュレート向けなのかな。

うーん、IETesterに戻そうかどうしようかと思って、ふとそういえばマイクロソフトさんがなんか便利ツール出したって、前にどこかで読んだことがあって、検索かけてみたらありました。Modern.ieです。
この投稿の続きを読む »

LINEで送る
Pocket

[日記] ショッピングモールとアプリアイコン

2014/02/5

こんにちは。きんくまです。

家族でショッピングモールに、ときどき行きます。
(どうでもよいのだけど、この間ちらっと聞いたところによると、都内はモールがあんまりないようなので、こういうのは郊外の人だけっぽい。)

で、ブラブラと歩いているときにふと気がついて、「あ、これってApp Storeとかに似てるなー」と。App Storeの部分はGoogle PlayでもWindows Storeでもよいです。ここではアプリストアとしておきます。ようするにショッピングモールだと、

1. 一定のフォーマットで店舗が並んでいる
2. どの店に入るか決めて、入店。店内を回遊。品定め
3. お買い上げ

となっているところをアプリストアに直せば

1. 各アプリのアイコンが並んでいる
2. 各アプリの詳細ページに遷移して(入店)、品定め(スクリーンショットや説明文を読む)
3. ダウンロード(有料の場合はお買い上げ)

という感じなります。

各店舗は、チラシを配ったり、大手はCMを流したりするので、この辺もネットでの宣伝活動(ブログやレビューサイトへ投稿とか、Web広告出すとか)と同じですよね。アプリストアの方がリアル店舗を真似して作ったんだろうけど、なるほどなーと思いました。

それで、以前テレビだったと思うんだけど、リアル店舗だと店の入り口に客寄せみたいのを置くことがあるというのを見ました。客寄せというのは、店に興味を持ってもらい店内に入ってもらうためのもの。極端な話、実際には買わないかもしれないけど、遠くからも目立って、なんだか面白そう。なんだろう、これ?と思わず立ち止まり、中へ入るためのもの。

例えば、やたらでかい熊のぬいぐるみが置いてあるとか、ガラスの器をこれでもかと積んでしまうとか。そういったたぐいのもの。そこまでいかずとも、お店の人が入り口におくのは、その店でその季節一番ウリになりそうな、服だったり雑貨だったりすると思います。

商品って、仮にものすごく使い勝手のよい、良い製品だったとしても、それがほとんど知られてなかったりすることはよくあることです。まず手にとってもらう、興味をもってもらうということは、とても重要なのかなと。その後に、商品そのものに力がある場合は、買ってもらえるだろうし、そうでない場合は出オチというか、また棚に戻されてしまう。店の前を素通りされてしまうことは、その店の存在そのものがなかったことにされてしまうようなもの、、。厳しい現実なのですが、そういうところでリアル店舗の人たちは日々戦っているものと思われます。

ブログなんかでも記事タイトルがすごく重要、ここが決まれば見に来てもらえるっていうのがよく書いてあったりするけど、これも同じですね。
釣りタイトルだったとしても、人に興味をもってもらえる場合は、見に来てもらえるという。もちろん、見に来ても、中の記事が肩すかしな内容だったとして、それが何回も続くと、オオカミ少年のような認識をもたれてしまうので、中身も大事です。

で、アプリストアの場合は、アイコンとスクリーンショット画像がとても重要だなと。最近はスクリーンショットというよりも、画面を使った広告画像になっているので、そこの出来はとても重要だってことですね。特に1枚目。こうしてアプリストアを眺めてみると、各アプリそれぞれ工夫をしています。もともとの見た目が派手なものは、それを活かすように作っていたり、地味目なものはどうしてるかというと、iPhone端末の裏に背景画像を置いて、それをおしゃれな感じにしたり。iOS7でもとりいれられたすりガラスの表現みたいの。部屋の外だか中だかわかんないけど、インテリアっぽいものがぼやけてあるというか。あとゲーム系なんかはすごい工夫してますね。

ストアのスクリーンショットは、アプリ本体のものなわけで、アプリ本体の方のデザインの方も大事だと思います。デザインを優先して使い勝手がおざなりになってしまうのは本末転倒なのですが、ある程度はハッタリというか見栄えというかそういうのは大事だなと。ぱっと見「おっ、これはっ!」となる感じといいますか。まあ、そこらへんの機能性と装飾性のバランス感覚は難しいですけどね。

以前にどこかの記事で、『アプリを作る前に、アイコンとスクリーンショット画像から作って、自分が欲しかったらそのまま作るけど、欲しくなかったら作らない』とかって読んだことがあって(ごめんなさい。どこかの会社さんのインタビュー記事だったと思うけど、どの記事かは失念、、)、この方法は人に興味をもってもらう最初の部分でつまづかないという点では、あってるんだなーと。妙に納得してしまいました。

自分の場合、実際にものを作る側の立場なので、ものを売る側のことを軽視していまいがちかなと。「良いもの作ったんだから、ほっといても売れるだろー」みたいな楽観論といいますか。売る側の人たちは、「いかに売れるか」と日々アイデアを出したり、工夫して頑張っているわけで、この辺のことを考えることも大事だよなと思いました。

LINEで送る
Pocket

[AS3 | iOS | Android] タイマーアプリ制作日記 1

2014/01/29

こんにちは。きんくまです。

作業中によくポモドーロテクニックを利用しています。
ポモドーロテクニックというのは、集中時間と休憩時間を短く区切って作業するいわゆるライフハックというやつです。

>> ポモドーロテクニックとは

25分作業+5分休憩は最初は短いかな?と思ったのですが、意外とそのぐらい短い方がほどよく集中できます。
私は気分がノってくると3時間とか休み無くやってしまうことがあって、ただそれをやってしまうと疲れてしまって、そのあと1時間ぐらい休まないとまた気合いが入らないことがあります。

そんなときに、ポモドーロを利用すると、「あれ?もう終わり?」と思いつつ、強制休憩を入れることで、何サイクルも継続的に集中できるのが魅力でした。
キャッチフレーズをつけるとすれば「持続可能な集中」みたいな。

で、そのポモドーロを利用するのにタイマーアプリがあると便利です。
PC用のアプリもあり、使ってみたこともあるのですが、マウスやキーボードでワンクリックで止められてしまい(当然なのですが)、作業をやめないことが多くてダメでした。まあ、目覚ましみたいなもんですね。止めて寝てしまう(この場合は続けてしまう)みたいな。

で、iPhone用のアプリをいくつか試してみたところ、意外とうまくいきました。
iPhoneなので、マウスとキーボードから手を話、それに画面から目を離すことも良いのだと思います。

それで、便利に使っていたのですが、せっかくなら自分でも作ってみたいなと思ってきました。
少しずつ時間を使って、仕様を考えて、デザインも基本的なのはできてきたので、一度公開しておいて、やる気を保とうかと思いました。

タイマーアプリの仕様

timerapp_fig1

現状の仕様

・ポモドーロなので、2連続タイマー(作業用と休憩用)を設定
・アイコンのきせかえ(10種類くらい?大変そうだったらとりあえず2種類。作業+休憩)
・背景と時計の文字の色変え
・AIRを使ってワンソースで、iOS、Android両対応にする
・日本語版のみ
・無料版で広告をつける
・時間設定は独自のテンキータイプですばやくできるようにする

この投稿の続きを読む »

LINEで送る
Pocket

[フリーソフト | mac ] シンプルなデスクトップ用デジタル時計アプリ MinimalClockを作りました

2014/01/15

こんにちは。きんくまです。

light_theme

シンプルなデスクトップ用デジタル時計アプリを作りました。
MinimalClockという名前にしました。mac用です。

マルチディスプレイ環境だと、どうにも時計が目に入らないことがありまして。
Macの最新のOS Mervericsだと各ディスプレイに時計をつけられるので、そんなに困らないのですが、
もう少し目につくところに好きな用に置きたいなーと。

特徴

日付と時間のみを表示するシンプルなデジタル時計です。
大きすぎず、かといって小さくて見づらいわけでもないちょうど良いバランスの大きさです。
(上のキャプチャは実寸です。)
デスクトップ上の好きな位置に置けます。常に画面の最前面に設定しておけば、別のアプリの裏に隠れることもありません。
1秒ごとに時間経過をチェックして、分が変ったときのみ画面描画するようにしてあるので、CPUに負担をかけません。
Retinaをサポートしました。
無料です。

3つの機能

1. 明るいテーマ、暗めのテーマの2種類のテーマ
2. 12時間 or 24時間表記
3. ウインドウを常に最前面に

の3つの機能です。

テーマ

テーマは上のキャプチャにある
・白地で黒文字
と下のキャプチャにある
・黒字で白文字
です。

dark_theme

メニューのToggle Themeから選択してください。

12時間24時間表記

メニューからToggle 12-24 hoursを選択してください。

画面の常に最前面に

メニューからWindow always in frontを選択してください。

ダウンロード

>> ダウンロードはこちらから

注意事項など

・mac用です。
・たぶん最近のmacだと動きます。古いのはテストしてないです。

・Retinaをサポートしました。

・zipを解凍してできるMinimalClock.appをダブルクリックすれば起動します。
 インストーラーはありません。

・無料(フリー)ですが、無保証です。自己責任でご使用ください。

・CPUに負荷をかけないために、1秒間に1回のみ、以前と時間が経ったかチェックして、分が変ったときのみ画面を更新します。
 なので、端末の時計にぴったり正確ではなく、だいたい合ってるぐらいです。

・アンインストールする際は、ファイルを削除してください。
 設定を保存しないので、これ以外に設定ファイルを作りません。

開発者向け作り方情報

このアプリ自体はAIR製です。
一番最初にAIRが出たときって、必ずインストーラーからインストールさせる面倒くさいアプリしか作れなかったのですが、なんだか最近のAIRはダブルクリックですぐに立ち上がるアプリを作れるようになってました。

AIRのランタイムも同梱できるようになったので、ユーザーの端末に入っているランタイムバージョンのことも気にすることなくできるので便利です。

これのソースコード自体は、特にクラスも分けずに300行くらいの1枚のメインクラスからのみで、できてます。
なので、こんな感じの小さなフリーウェアは楽でよいなと開発して思いました。

以下興味あるひと向けソースコード

この投稿の続きを読む »

LINEで送る
Pocket

[日記] 2014年 あけましておめでとうございます!

2014/01/2

こんにちは。きんくまです。

2014年 あけましておめでとうございます!
今年もよろしくお願いします。

2014_NewYearCard_web

ソチ五輪がもうすぐやってくるということで、ウマにスケートをさせてみました。

今年の抱負とか

今年の抱負というか目標というか
この投稿の続きを読む »

LINEで送る
Pocket

ページトップへ戻る