【发布时间】:2021-08-28 05:29:43
【问题描述】:
我需要处理和移动文件中的一些文本块(实际上是流)。
这个过程并不简单,但在概念上很简单,所以我想知道通过文本处理工具执行它的最简单方法是什么。
示例输入如下;破折号是不相关的文本:
---
---
FOO 1,
FOO 2
---
---
BAR 0 --
---
---
应该变成:
---
---
---
---
-- BAR 0 BAZ FOO 1,
BAZ FOO 2
--
---
---
目标中的空格(类型)无关紧要,只要有一些间距,所以,如果它更简单,这样的目标行也可以:
-- BAR 0 BAZ FOO 1, BAZ FOO 2--
可能,sed 的保持缓冲区或 Perl 变量可以,但我不知道它们足够好,无法提取一些简单的东西(如果可能的话)。
【问题讨论】:
-
从您的示例中非常不清楚您提取和重新排列文本的标准是什么。
-
我们甚至无法从该示例中判断您是尝试单独替换 FOO 1 和 FOO 2 还是仅当它们作为一对连续行出现时。在进行文本匹配时,由破折号表示的文本永远不会无关紧要 - 你应该用一些真正有代表性的文本替换它。