【发布时间】:2021-07-07 05:39:01
【问题描述】:
我有三个名称为 File1、File2 和 File3 的文件。三个文件的数据如下图:
文件1:
// Class of "A2" of type "ONE".
// Class of "A3" of type "ONE".
// Class of "D1" of type "TWO".
// Class of "D2" of type "TWO".
// Class of "D3" of type "FOUR".
// Class of "D6" of type "FIVE."
文件2:
@CLASS_NAMES = ("one",
"two",
"three",);
@CLASS_LIST_NAMES = ("ONE.A1",
"ONE.A2",
"ONE.A3",
"TWO.D1",
"TWO.D2");
文件3:
D3
D4
D5
我需要签入 File1 类“D3”存在于 @CLASS_LIST_NAMES 的 File2 中或不是。 如果 @CLASS_LIST_NAMES 的 File2 中不存在它,那么我需要检查 File3 是否存在 D3或不。 如果 D3 存在于 File3 中,则输出应为 PASS,如果它不存在于 File2 和 File3 中,则输出应为 >失败。
同样,我需要检查 File1 中的所有类列表(A2、A3、D1、D2....)是否存在于 @CLASS_LIST_NAMES 与否,如果它们不存在于 File2 中,我需要使用 File3 进行验证并将输出打印为 PASS 或 FAIL。
我尝试了以下代码:
#!/bin/bash
sed -n '/@CLASS_LIST_NAMES =/,/)/p' File2
我被困在这里,谁能告诉我接下来需要做什么。
Deisred_Output:从 File1 - D6 在 File2 和 File3 中都找不到,它应该打印为 FAIL。输出应如下所示:
Fail: D6 is not found
【问题讨论】:
-
您可以通过使用
IF/ELSE和grep的组合来完成此操作... -
您可以添加一个示例以获得所需的输出吗?
-
@AhmetSaidAkbulut 我修改了问题。请找到我想要的输出。由于从 File1 - D6 不存在于 File2 和 File3 中,输出应为 D6 上的 Fail 。
-
@ADAPANIKHIL :第 1 步:将文件 1 中的所有类名放入一个数组中。第 2 步:将文件 2 中的所有类名放入一个数组中。第 3 步:将文件 3 中的所有类名放入一个数组中。第 4 步:处理数组以实现您的算法。由于您要处理多个类,因此将所有数据保存在内存中可能会更有效,而不是一次又一次地遍历同一个文件。
-
@user1934428 但是如何将 File1 和 File2 数据处理成数组。数据会随机变化,所以...