sedのデバッグやHTML化ができる『sedsed』
Pocket

ツイートで『sedsed』なるツールについて流れてきてたので、何だこりゃと思ったらどうやらsedスクリプトのデバッグとかができるツールらしい。
Pythonで書かれているようで、比較的昔からあるツールのようだ。

インストールは以下のコマンドで行える。

git clone https://github.com/aureliojargas/sedsed
cp sedsed/sedsed.py /usr/local/bin/sedsed

 

とりあえず、実際にデバッグをしてみよう。
以下のように、「–debug」オプションを付与して普通にsedを実行するように条件を入力する。

コマンド | sedsed --debug '条件'
[root@BS-PUB-CENT7-01 ~]# echo abcdaa | sedsed --debug 's/a/A/;s/a/Z/g'
PATT:abcdaa$
HOLD:$
COMM:s/a/A/
PATT:Abcdaa$
HOLD:$
COMM:s/a/Z/g
PATT:AbcdZZ$
HOLD:$
AbcdZZ
Sponsored Links

GNU拡張されたオプションとかには対応してなさそうなのだが、ラベルには対応してるようだ。

[root@BS-PUB-CENT7-01 ~]# echo ABCDEFG | sedsed --debug --hide=HOLD ':a;p;s/\(.\)\(.*\)/\2\1/;/^G/!ba'
PATT:ABCDEFG$
COMM::a
COMM:p
ABCDEFG
PATT:ABCDEFG$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:BCDEFGA$
COMM:/^G/ !b a
COMM:p
BCDEFGA
PATT:BCDEFGA$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:CDEFGAB$
COMM:/^G/ !b a
COMM:p
CDEFGAB
PATT:CDEFGAB$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:DEFGABC$
COMM:/^G/ !b a
COMM:p
DEFGABC
PATT:DEFGABC$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:EFGABCD$
COMM:/^G/ !b a
COMM:p
EFGABCD
PATT:EFGABCD$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:FGABCDE$
COMM:/^G/ !b a
COMM:p
FGABCDE
PATT:FGABCDE$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:GABCDEF$
COMM:/^G/ !b a
PATT:GABCDEF$
GABCDEF

 

他の人のsed芸とかを解析するときに役に立つかもしれない。

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。