inplace(1) 1.1.0をリリースしました。これはシンプルなコマンドラインツールで、perlやrubyの-iオプションのようなインプレイス編集を任意のコマンドで行うためのものです。使用例はこんな感じ:

# ファイルをソート
$ inplace -e sort file1 file2 file3

# 文字コードをUTF-8に変換
$ inplace -e 'nkf -w' *.txt

# タイムスタンプを変えずに画像加工, バックアップを残す。
$ inplace -b.orig -te 'convert -rotate 270 -resize 50%% %1 %2' *.jpg

# タイムスタンプを維持したままMP3タグを編集。
$ find mp3/Some_Artist -name '*.mp3' -print0 | xargs -0 inplace -te 'mp3info -a "Some Artist" -g "Progressive Rock" %1'

 1.0.4からの変更点は以下の通り:

  • -D/--debug: 新設。従来の-vはユーザ寄りの出力に変更。
  • -i/--preserve-inode: 新設。-b-sを指定したときも編集したファイルのinode番号を保存する。(リネームの代わりにコピーを行うので速度は低下する)
  • ~/.inplaceでコマンドエイリアスを定義できるようになった。便利な加工コマンドの再利用が容易に。

 Rubyで実装しているので可搬性は微妙ですが、直接ファイルの内容を置き換えるツールだけに、エラー処理の漏れやメモリ関連のバグのような致命的なミスが起こるリスクが低いのは大きな利点。


Categories : Tech