我有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
答案 0 :(得分:2)
$ 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
答案 1 :(得分:1)
虽然输出是无序的,但这可以实现它:
awk '{ h[$2]++ } END { for(k in h) print k " - " h[k] }' file1 file2
计数保存在h
关联数组中,当处理完所有文件后,结果将打印在END
块中。
答案 2 :(得分:0)
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
>