GNU sedでは--debugオプションでsedの動作を確認できるデバッグモードの機能を利用できます。
以下はデバッグモードを利用した例になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
$ seq 3 | sed --debug -n '1h;1!H;g;${s/\n/ /g;p}' SED PROGRAM: 1 h 1! H g $ { s/\n/ /g p } INPUT: 'STDIN' line 1 PATTERN: 1 COMMAND: 1 h HOLD: 1 COMMAND: 1! H COMMAND: g HOLD: 1 COMMAND: $ { COMMAND: } END-OF-CYCLE: INPUT: 'STDIN' line 2 PATTERN: 2 COMMAND: 1 h COMMAND: 1! H HOLD: 1\n2 COMMAND: g HOLD: 1\n2 COMMAND: $ { COMMAND: } END-OF-CYCLE: INPUT: 'STDIN' line 3 PATTERN: 3 COMMAND: 1 h COMMAND: 1! H HOLD: 1\n2\n3 COMMAND: g HOLD: 1\n2\n3 COMMAND: $ { COMMAND: s/\n/ /g MATCHED REGEX REGISTERS regex[0] = 1-2 ' ' PATTERN: 1 2 3 COMMAND: p 1 2 3 COMMAND: } END-OF-CYCLE: |