- 论坛徽章:
- 60
|
曾以何时有个 sedsed 的 sed 调试工具, 用的好不欢喜
这两天无意间看了下 sed 的更新历史, 在GNU sed 4.6 版本中, 发现新增了一个 --debug 选项, 试用了一下, 一个字: 好
大家伙可以试试
- NEWS
- * Noteworthy changes in release 4.6 (2018-12-19) [stable]
- ** Improvements
- sed now prints a clear error message when r/R/w/W (and s///w) commands
- are missing a filename. Previously, w/W commands would fail with confusing
- error message, while r/R would be a silent no-op.
- sed now uses fully-buffered output (instead of line-buffered) when
- writing to files. This should noticeably improve performance of "sed -i"
- and other write commands.
- Buffering can be disabled (as before) with "sed -u".
- sed in non-cygwin windows environments (e.g. mingw) now properly handles
- '\n' newlines in -b/--binary mode.
- ** Bug fixes
- sed no longer accesses invalid memory (heap overflow) when given invalid
- backreferences in 's' command [bug#32082, present at least since sed-4.0.6].
- sed no longer adds extraneous NUL when given s/$//n command.
- [related to bug#32271, present since sed-4.0.7]
- sed no longer accesses invalid memory (heap overflow) with s/$//n regexes.
- [bug#32271, present since sed-4.3].
- ** New Features
- New option, --debug: print the input sed script in canonical form
- and annotate program execution.
复制代码
New option, --debug: print the input sed script in canonical form
and annotate program execution.
- $ seq 3 | sed --debug -e 's/./--&--/ ; 2d'
- SED PROGRAM:
- s/./--&--/
- 2 d
- INPUT: 'STDIN' line 1
- PATTERN: 1
- COMMAND: s/./--&--/
- MATCHED REGEX REGISTERS
- regex[0] = 0-1 '1'
- PATTERN: --1--
- COMMAND: 2 d
- END-OF-CYCLE:
- --1--
- INPUT: 'STDIN' line 2
- PATTERN: 2
- COMMAND: s/./--&--/
- MATCHED REGEX REGISTERS
- regex[0] = 0-1 '2'
- PATTERN: --2--
- COMMAND: 2 d
- END-OF-CYCLE:
- INPUT: 'STDIN' line 3
- PATTERN: 3
- COMMAND: s/./--&--/
- MATCHED REGEX REGISTERS
- regex[0] = 0-1 '3'
- PATTERN: --3--
- COMMAND: 2 d
- END-OF-CYCLE:
- --3--
复制代码
|
|