GNUgrep
命令允许在传入数据流中搜索,例如在文件内部。它有两个相似且非常有用的 CLI 参数:-A
& -B
:
-Annn shows nnn lines following the line where the match was found ("after")
-Bnnn - same, but show the lines preceding the matching one ("before")
它非常方便分析包含罕见匹配的长列表,以便了解匹配的环境。现在我需要在电子表格中重现这种行为,但不知道如何...
我有一张资产标签表(删除了非必要的列):
CNT306621 OK
CNT306631 OK
CNT306632 OK
CNT306751 Bad!
CNT306761 OK
CNT306771 OK
顺序资产标签(CNT30xxxZ)在xxx
部分中必须有所不同,并且下一个 ATxxx
必须与前一个相同,或者为 1+前一个。Z
部分超出范围并且CNT30
是常量。
这就是为什么 663 在 662 之后是 OK 的原因,第二个 663 在第一个之后也是 OK 的原因。但是 675 必须在 674 之后,而不是在 663 之后。对于大约 1000 行的表,不匹配的数量约为 30。
有些不匹配是“合理的”——每个部门都有自己的标签范围,例如研发部门的标签范围从 CNT30 660
1 到 CNT30 674
9,但目前只使用 660..663,而 664..674 则保留供将来使用。然后会计部门的标签范围从 CNT30 675
1 到 CNT30 690
9,因此正常情况下会标记为“糟糕!”,因为最后一个标签用过的由 R&D 开发的并不是 R&D 开发的最后一个已分配范围。
但有时某些标签的分配方式可能不一致:
CNT306751 OK
CNT306761 OK
CNT306771 OK
CNT306791 Bad!
CNT306801 OK
CNT306812 OK
会计的标签 CNT3067 8
1 在哪里?这种不匹配是不正常的,也是我“调查”的主题 - 要么是在分配过程中无意中遗漏了标签,要么是粗心地删除了标签。为了保护我的眼睛,我需要将表格缩减为“坏!”行及其最接近的行,以检查不匹配是否“正确”。如果它是纯文本文件,我可以使用grep
它,创建缩减的输出,在“坏!”之前和之后各有 1-2 行,以便快速澄清。但它是电子表格文档,我希望利用它的过滤功能。
那可能吗?
PS. 我可以将电子表格导出为纯文本,然后 grep 查找我需要的任何内容,但这是最后的手段。我还可以编写一个宏来扫描工作表并将相应的行复制到另一张工作表中。但是内置的过滤引擎怎么样?