我有 3 列的文本文件,我想计算每个字符串出现在第 2 列中的数量。
file1 的第二列:
SAM
MATHEW
ALAN
NEELA
JOHN
file2的第二列:
ALAN
NEELA
KAREEM
MOHA
期望的输出:
SAM-1
MATHEW-1
ALAN-2
NEELA-2
JOHN-1
KAREEM-1
MOHA-1
我有 3 列的文本文件,我想计算每个字符串出现在第 2 列中的数量。
file1 的第二列:
SAM
MATHEW
ALAN
NEELA
JOHN
file2的第二列:
ALAN
NEELA
KAREEM
MOHA
期望的输出:
SAM-1
MATHEW-1
ALAN-2
NEELA-2
JOHN-1
KAREEM-1
MOHA-1
$ awk '{a[$2]++}END{for(k in a)print k"-"a[k]}' file1 file2
MOHA-1
NEELA-2
JOHN-1
KAREEM-1
ALAN-2
MATHEW-1
SAM-1
这将完成它,尽管输出是无序的:
awk '{ h[$2]++ } END { for(k in h) print k " - " h[k] }' file1 file2
一个计数保存在h
关联数组中,当所有文件都已处理后,结果将打印在END
块中。
awk '{a[$2]++;next}END{for(i in a)print i"-"a[i]}' file1 file2
测试:
> cat file1
10993 item 0
11002 item 6
693661 item 7
> cat file2
10993 item 0
11002 item1 6
693661 item2 7
> awk '{a[$2]++;next}END{for(i in a)print i"-"a[i]}' file1 file2
item1-1
item2-1
item-4
>