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
正如fra-san 提到的,GNU在 4.6 版中
sed
引入了一个--debug
选项,它几乎可以满足您的需求;因此,例如,如果您运行:输出是
我不知道您使用的是什么发行版,但这个版本的 sed(或更高版本)在 Debian 10、Ubuntu 19.04和衍生版本中可用;它将在 Fedora 33 中可用。