我有两个频率计数字典,我尝试使用 join/sort cmd 合并它们,但总是得到错误的输出或不同的频率计数。我想将它们连接在一起,如果该单词存在则添加+1,并且新单词计数为1
7 umslipped
1 umslippersmouthwashand
3 umslobagas
35 umslopogaas
5 (umslopogaas
15 (umslopogaas)
1 umslower
6 umsmall
2 umsnag
2 um[snaps
13 umsnootchie
2 umsnow
84 umso
14 um-so ##
第二本词典
1 palpating
1 palpated
1 palpate
1 palpably
1 palpable
1 palominos
1 palomino
1 palomar
1 palmyra
1 palmy
1 palmtops
1 palmtop
1 palms
1 palmolive
1 palmists
1 palmistry
1 palmist
答案1
您可以使用awk
将其全部加起来。
awk '{ arr[$2] += $1} END {for (key in arr) {printf "%4s %s\n", arr[key], key}}' file1 file2
解释
{ arr[$2] += $1}
将字符串的数组索引设置$2
为+=
数字$1
END
当我们完成后{for (key in arr) {printf "%4s %s\n", arr[key], key}}
循环遍历所有内容并将其打印出来。
我做了什么来测试它
文件1
7 umslipped
1 umslippersmouthwashand
3 umslobagas
35 umslopogaas
5 (umslopogaas
15 (umslopogaas)
1 umslower
6 umsmall
2 umsnag
2 um[snaps
13 umsnootchie
2 umsnow
84 umso
14 um-so ##
文件2
14 um-so ##
84 umso
2 umsnow
13 umsnootchie
2 um[snaps
2 umsnag
6 umsmall
1 umslower
15 (umslopogaas)
5 (umslopogaas
35 umslopogaas
3 umslobagas
1 umslippersmouthwashand
7 umslipped
输出
10 (umslopogaas
12 umsmall
6 umslobagas
28 um-so
2 umslippersmouthwashand
30 (umslopogaas)
70 umslopogaas
26 umsnootchie
4 umsnag
168 umso
4 um[snaps
14 umslipped
4 umsnow
2 umslower