我從你的問題中瞭解到,當你在兩個文件中找到它們時,你想要做的是數字的比例,否則只是打印它們的原始值。你可以這樣做:
lines1 = [i.split() for i in open('tmp.txt').readlines()]
values,keys = zip(*lines1)
dict1 = dict(zip(keys,values))
lines2 = [i.split() for i in open('tmp2.txt').readlines()]
values,keys = zip(*lines2)
dict2 = dict(zip(keys,values))
dict3 = {}
for k1,v1 in dict1.items():
v2 = dict2.get(k1)
if v2:
dict3[k1] = str(float(v1)/float(v2))
else:
dict3[k1] = v1
for k2,v2 in dict2.items():
if not dict3.get(k2):
dict3[k2] = v2
out = open('output.txt','w')
out.writelines(['%s\t%s\n' %\
(k[0],dict3[k[0]]) for k in sorted(dict3.items(), key=lambda x:x[1])])
out.close()
數字也重要嗎? –
數字代表wordcount,文本文件是使用tr,uniq和sort排序的基本bash wordcount的結果。我試圖區分兩個主題之間的uniqe wordcount。 –
我不明白爲什麼bash不能完成所有工作。 – NullUserException