sh

~/.*rcへのシンボリックリンクを貼りまくるシェルスクリプト

30分プログラム、その546。~/.*rcへのシンボリックリンクを貼りまくるシェルスクリプトを書いた。 ボクは~/.*rcみたいな設定ファイルを全部gitのレポジトリに突っ込んで、すぐに自分の環境を構築できるようにしている。ただ、.*rcのままだとlsで表示されなく…

各言語の対話環境の起動速度比較

30分プログラム、その514。対話環境ってとっても便利ですよね。関数の動作を確認するときとか、ちょっと複雑な計算がしたいときとかガンガン使いますよね。でも、対話環境の起動速度って、だいぶ差がある気があるよね。例えば、ghcの対話環境の起動は、だい…

シェルスクリプトでクリップボードにコピー

シェルスクリプトでクリップボードに文字列をコピーする方法。 Linuxの場合 $ echo -n hoge | xsel -b Macの場合 $ echo -n hoge | pbcopy

antでもmakeでも同じコマンドでビルドしたい

30分プログラム、その409。自動でビルドコマンドを選ぶスクリプトを書いてみた。 プロジェクトごとに使っているビルドコマンドが違うので、毎回makeを使うのか、antを使うのか、omakeを使うのか迷わないといけない。 これはあまりにも面倒なので、適切なビル…

/Applications/*.appへのエイリアス

30分プログラム、その394。id:rednesが/Applications/*.appを起動するシェルスクリプトを生成するシェルスクリプトを書いていたので、aliasでマネしてみた。毎回、/Applications/*.appを見にいくと遅かったので、~/.zsh/appにキャッシュするようになってる。…

ファイルごとにコマンドを実行するシェルスクリプト

コマンドのなかには、複数のファイルを引数にとってくれないのがある。 例えば、unzipは複数のファイルを解凍したい場合は次のようにしないといけない。 $ unzip a.zip $ unzip b.zip # NG: unzip a.zip b.zip こういうときはfor .. inを使えばいい。 $ for …

Operaの設定ファイルの同期

30分プログラム、その244。Operaの設定ファイルの同期。 大学と家のOperaの設定を同期したかったので、rsyncで同期するようにしてみた。ポイントはタイムスタンプが新しい場合だけ上書きする-uオプション。 ショートカットキーと全体の設定、アドレスバーで…

アスキーアートの画像化

30分プログラム、その236。アスキーアートの画像化 http://www.geocities.jp/ipa_mona/を使って、アスキーアートを簡単に画像化できるようにしてみた。そのうち、Webインターフェースを書くかもしれない。 ImageMagickで文字列を画像にする場合は、 convert …

テキストの画像化

30分プログラム、その233。ImageMagickを使って、テキストを画像にしてみる。 convertの-annotateを使うとテキストを挿入できる。このとき指定するフォント一覧は、"convert -list font"で取得できる。 使い方 $ echo foobar | sh logo.sh ソースコード #!/b…

ファイル名で圧縮

30分プログラム、その228。画期的なDBなるものを聞いたので、似たものをシェルスクリプトで作ってみる。 高速検索性を最優先とするために、OSの基本機能であるファイル名検索に目を付け、 そこで検索対象となるファイルに含まれるデータそのものを全て「ファ…

テキストをPDFに変換

30分プログラム、その197。複数のファイルを一つのPDFに変換するスクリプト。 印刷したいファイルが大量にある場合、それを一枚一枚印刷するのは面倒。そこで、全部を一枚のPDFに変換して印刷できるようにする。 本当は、lprを使って印刷までする予定だった…

単語の頻度のカウント(シェルスクリプト版)

30分プログラム、その193。id:mzp:20071127と同じく単語の頻度のカウント。 シェルスクリプトで再現する。お酒飲んで、よっぱらっているので簡単なやつで許してください。たぶん詳解 シェルスクリプトに同じやつが載っていた気がする。 使い方 $ ./freq word…

再帰的にmake clean

30分プログラム、その141。カレントディレクトリ以下を再帰的にmake cleanするプログラム。本当はRubyかPerlあたりでやるつもりだったけれども、よくよく考えてみればシェルクリプトで十分なことに気がついたので。 使い方 $ make-clean ./code/atomduce rm …

小ネタ:ls -1,killall

ls -1 ls -1とやると、ファイル名を一列で表示してくれる。 $ ls foo.c bar.c $ ls -1 foo.c bar.cxargsとかと組み合わせるとステキ。 # カレントディレクトリのファイルをすべて、svn add $ ls -1 | xargs svn add killall 普通、プロセスをkillするときは…

dcmp

sh

http://mzp.sakura.ne.jp/files/dcmp.sh複数のディレクトリを比較して、変更されているファイルを調べるシェルスクリプト。 調べられるのは、変更されたファイルと新たに追加されたファイルのみ。削除されたファイルは調べられない。 $ ls src foo.txt bar.t…