sedに「詳細モード」または「デバッグモード」を適用する方法はありますか?

sedに「詳細モード」または「デバッグモード」を適用する方法はありますか?

gnu sed実行した内容と完了した内容を詳細に表示する方法はありますか?
スクリプトが実行される前と後に、各入力行に予約されたスペースやパターンスペースなどの内容を表示できるように、「デバッグモード」などが必要です。

ベストアンサー1

〜のようにプラサン 言及する、GNUのsed導入--debugたとえば、次を実行すると、バージョン4.6のオプションがほとんど必要です。

printf '%s\n' one two  | sed --debug 'H;1h;$x;$s/\n/_/g'

出力は次のとおりです

SED PROGRAM:
  H
  1 h
  $ x
  $ s/\n/_/g
INPUT:   'STDIN' line 1
PATTERN: one
COMMAND: H
HOLD:    \none
COMMAND: 1 h
HOLD:    one
COMMAND: $ x
COMMAND: $ s/\n/_/g
END-OF-CYCLE:
one
INPUT:   'STDIN' line 2
PATTERN: two
COMMAND: H
HOLD:    one\ntwo
COMMAND: 1 h
COMMAND: $ x
PATTERN: one\ntwo
HOLD:    two
COMMAND: $ s/\n/_/g
MATCHED REGEX REGISTERS
  regex[0] = 3-4 '
'
PATTERN: one_two
END-OF-CYCLE:
one_two

どのディストリビューションを使用しているかわかりませんが、このバージョンのsed(またはそれ以上)を使用できます。Debian 10 でUbuntu 19.04からそしてデリバティブはFedora 33で利用可能です。

おすすめ記事