【发布时间】:2019-10-01 23:50:54
【问题描述】:
我有两个文件,我想检查该文件中的每一行是否存在。但是,有时每行中第二个单词之后的单词顺序是不同的。没关系,因为我只对前两个单词/列之后的缺失/附加单词感兴趣。
文件_A:
foobar A a ab c bd hd
bar B a c jd sm sldkjn
baz C boo abd
文件_B:
foobar A a c bd hd ab
baz C abd boo
bar B c a jd sm sldkjn
在上面的示例中,根据我的标准,这两个文件都很好。
一开始我试过
$ sort -u file_A > outA
$ sort -u file_B > outB
$ diff outA outB
这种方式不考虑行顺序。 但是,它会考虑每一行的词序。
如何忽略第二列之后每一行的单词顺序?
【问题讨论】:
-
@Prune OP 对需求有清晰的描述,一个清晰的例子,一个具体的问题,以及他到目前为止所尝试的内容。他还能做多少才能使它成为一个好问题?
-
如果文件 A 有 2 行相同的
baz C boo abd行,而文件 B 只有其中 1 行,输出应该是什么 - 根据您的标准,这些文件是相同还是不同? -
@EdMorton 他们应该是不同的。 :)
-
我正在寻找解决指定问题的方法。稻草人示例专门处理整行;要“忽略词序”,必须尝试识别一个词单元。现在这是一个有争议的问题,因为这个问题有一个很好的 shell 答案和一个蛮力的 Python 方法。
-
@Prune 请注意,我在每行的第二个单词之后提到了顺序并不重要(内容只重要),因此不会完全忽略单词顺序。