2013-02-25 138 views
0

我有3列的文本文件,我想算每串的数字出现在第2列如何计算字符串出现在列中的次数?

文件1的第二栏:

SAM 
MATHEW 
ALAN 
NEELA 
JOHN 

文件2的第二栏:

ALAN 
NEELA 
KAREEM 
MOHA 

所需的输出:

SAM-1 
MATHEW-1 
ALAN-2 
NEELA-2 
JOHN-1 
KAREEM-1 
MOHA-1 
+0

是否有可能更具体?我们甚至不知道您说的是什么编程语言,或者它是否与系统数据库相关。 – 2013-02-25 08:50:21

回答

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

这完成它,虽然输出是无序:

awk '{ h[$2]++ } END { for(k in h) print k " - " h[k] }' file1 file2 

甲帐簿被保持在h关联数组中,当所有文件已被处理的结果被打印在END块。

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 
> 
+2

'; next'在这种情况下什么也不做。 – 2013-02-25 12:55:29

相关问题