gpt4 book ai didi

linux - 比较两个不同文件的内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:48 24 4
gpt4 key购买 nike

例如,`file1.txt,只包含变量:

a
b
d
c

file2.txt包含 < ,变量和路径:

< a /x/y/1.c
< c /x/d/7.h
< f /x/c/6.s
< b /x/v/8.mk
< t /x/1.h
< d /x/5.so

file1.txt变量应与 file2.txt 进行比较.如果找到匹配项,则应从 file2.txt 打印完整的变量和路径。 .

预期输出:

< a /x/y/1.c
< b /x/v/8.mk
< d /x/5.so
< c /x/d/7.h

我试过 comm -3 file1.txt file2.txt , 但它没有有效地工作。

diff不能用于我的情况。

最佳答案

你问的是 shell,但我会通过 python 回答

import sys

with open(sys.argv[1], "r") as f:
d = dict((e.rstrip().split()[1], e) for e in f)

with open(sys.argv[2], "r") as f:
for e in f:
e = e.rstrip()
if e in d:
print(d[e], end="")

如果你把它保存到run.py,你可以这样调用它

python3 run.py file2.txt file1.txt > output.txt

与排序解决方案相比,它还保留了 file1.txt 的顺序,但将第二个文件加载到内存中。

关于linux - 比较两个不同文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40359083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com