【发布时间】:2015-08-03 09:15:07
【问题描述】:
我有一个包含多个退格字符 (^H) 的文件。我希望能够在 perl 中“应用”这些退格键。我找到了一些解决方案,但没有一个对我有用。
关键是这一行:
test>>M^H ^HManagement.^H^H^H^H^H^H^H^H^H^Hanagement.F^H ^HFiles.^H^H^H^H^Hiles.s^H ^Hs.^H ^Hc^H ^H^H ^Hscript.^H ^H^H^H^H^Hripts^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^Hscripts.^H.s^H ^Hshow_file ^H^H^H^H^H^H^H^H^Hhow_file = transform_factory_to_running^M
结果应该是这样的:
test>>Management.Files.scripts.show_file = transform_factory_to_running^M
在 vi 中,我能够按照https://stackoverflow.com/a/1298728/2837411 中的建议正确转换文本。
但是 perl 解决方案,也建议在这个问题中:https://stackoverflow.com/a/1298970/2837411没有为我工作(使用$_):
s{([^\x08]+)(\x08+)}{substr$1,0,-length$2}eg;
这个的输出是:
test>>Management.Files.sscriptriptscripts.show_file = transform_factory_to_running^M
所有退格都消失了,但看起来好像其中一些退格被应用到另一个退格?!
【问题讨论】:
标签: regex perl non-printing-characters