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

ツイートで『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芸とかを解析するときに役に立つかもしれない。

 


Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

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

*