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で利用可能です。