このBlogは移転しました。今後は aish.dev を御覧ください。

tse 0.0.2 - Text Stream Editor in Python

先日公開した tse をちょっとアップデートした。

http://pypi.python.org/pypi/tse

$ sudo easy_install -U tse

等でインストールできる。

コマンドラインオプションの修正

0.0.1 では -a オプションでコンディションとアクションを両方指定していたが、0.0.2 では、

tse -c CONDITION1 -a ACTION1 -a ACTION2 -c CONDITION2 ACTION3 ...

のようにコンディションとアクションを分け、一つのコンディションに対して複数のアクションを指定できるようにした。二つ以上のアクションが指定されている場合、複数行のスクリプトとして実行される。

また、-s オプションでは、コンディションとアクションを同時に指定できる。

tse -s CONDITION1 ACTION1 ACTION2 -s CONDITION2 ACTION3

.tsercファイル

ホームディレクトリに .tserc という名前のファイルを置いておくと、コマンド実行時にこのファイルの内容を実行してからファイル処理を開始するようになった。

~/.tserc ファイルには好きなPythonスクリプトを書いておく。たとえば、

# -*- coding:utf-8 -*-

import unicodedata
def normalize_str(s):
    """全角英数->半角等の正規化を行う"""
    return unicodedata.normalize("NFKC", s)

import re
def find_numbers(s):
    """文字列中の数字を全て抽出する"""
    return [int(n) for n in re.findall(r"\d+", s)]

のようによく使う関数などを定義しておけば、tseコマンドから

# 標準入力を読み込み、文字列を正規化して出力する
tse -s ".*" "print normalize_str(L)"

のように使えるようになる。