我有两个名为“fileA.txt”和“fileB.txt”的文件。
fileA.txt 有以下内容:
1 Arizona ABDJAQ 224
2 Ohio AKOGFR 458
3 Wisconsin EFGTAP 871
4 Colorado NAHBAX 991
上面四列分别是“ID”、“State”、“Pattern”、“Number”
fileB.txt 有以下内容:
1 Arizona NKIGAB 763
2 Ohio BAVYAD 918
3 Wisconsin AUOBAQ 547
4 Colorado INABEA 622
同样,四列是“ID”、“State”、“Pattern”、“Number”
现在这就是我想要做的:
我想先扫描“fileA.txt”并删除“模式”列只有一个“A”的所有记录。保留所有有 2 个“A”的记录。所以我会删除俄亥俄州和威斯康星州。(ID“2”和ID“3”)。同时,我也想同时从“fileB.txt”中删除这些ID!(尽管在 fileB 中,俄亥俄州和威斯康星州的模式中有 2 个“A”)。
完成此步骤后,我的“fileA.txt”应如下所示:
1 Arizona ABDJAQ 224
4 Colorado NAHBAX 991
我的“fileB.txt”应该是这样的:
1 Arizona NKIGAB 763
4 Colorado INABEA 622
接下来,我想扫描“fileB.txt”以删除所有模式为“A”的记录,并从“fileA.txt”中删除相应的记录。(在本例中为 Arizona,因为它在 fileB 中只有“A”,因此我们从 fileB 和 fileA 中删除了 Arizona。)
在这一步之后,我将在每个文件中只留下一条记录:
“fileA.txt”将有:
4 Colorado NAHBAX 991
和“fileB.txt”将有
4 Colorado INABEA 622
所以,简而言之,我想扫描这两个文件并只保留那些在两个文件中的模式中有 2 个“A”的记录。
是否有单行 Unix 命令或相对简单的方法来执行此操作?
感谢帮助!