

sedのコマンドを理解したいと思うのですが、パターンスペースやホールドスペースに入力されコマンドで加工されていく様子を、コマンド説明と想像だけではなかなか把握しづらく思っています。

パターンスペースやホールドスペースに何が保持されていて、コマンドによってどう変わっていくのかを、いっそのことsedのソースコードにデバッグプリントを仕込むとかして、見える化して観察できんものかと思っているのですが、既にそういうアプローチでsedの解説をされている記事をご存知の方がおられましたら教えて頂けませんでしょうか？

現状は以下を紐解いているところです。  
<http://ftp.gnu.org/gnu/sed/sed-4.4.tar.xz>


CC BY-SA 3.0
2017-03-01T11:22:30.707
33019
2017-03-02T01:58:19.600
20139
question
sed
sedの処理を追えるようデバッグプリントを出したい


デバッグプリントとは少し違いますが、[sedsed](https://github.com/aureliojargas/sedsed)でパターンスペースやホールドスペースを逐次表示できます。

[code]

    $ echo $'a\nb\nc' | sedsed.py --debug -ne '1!G;$p;h'
    PATT:a$
    HOLD:$
    COMM:1 !G
    PATT:a$
    HOLD:$
    COMM:$ p
    PATT:a$
    HOLD:$
    COMM:h
    PATT:a$
    HOLD:a$
    PATT:b$
    HOLD:a$
    COMM:1 !G
    PATT:b\na$
    HOLD:a$
    COMM:$ p
    PATT:b\na$
    HOLD:a$
    COMM:h
    PATT:b\na$
    HOLD:b\na$
    PATT:c$
    HOLD:b\na$
    COMM:1 !G
    PATT:c\nb\na$
    HOLD:b\na$
    COMM:$ p
    c
    b
    a
    PATT:c\nb\na$
    HOLD:b\na$
    COMM:h
    PATT:c\nb\na$
    HOLD:c\nb\na$
    
[/code]


CC BY-SA 3.0
2017-03-02T01:58:19.600
33029
2017-03-02T01:58:19.600
4010
33019
answer