我有一个文件
1 ABC 123 345 Apples
1 ABC 345 345 Apples
1 ABC 123 345 Apples_Fuji
1 ABC 123 345 ApplesApplesApples
1 ABC 123 345 Pears
1 ABC 123 345 Banana
...
我希望得到一个输出文件
Apples 2
Apples_Fuji 1
ApplesApplesApples 1
Pears 1
Banana 1
...
我不确定是否一次一个地使用它们(-o会不准确,-c奇怪地每次给我一个值)。
答案 0 :(得分:1)
带剪切,排序,uniq的解决方案
cat test | cut -f5,5 | sort | uniq -c
答案 1 :(得分:0)
尝试awk
:
$ awk '{arr[$NF]++}END{for(i in arr) print i,arr[i]}' file
ApplesApplesApples 1
Apples 2
Banana 1
Apples_Fuji 1
Pears 1
这是另一种方法,使用grep
和uniq
:
$ grep -oE '[^ ]+$' file | sort | uniq -c
2 Apples
1 Apples_Fuji
1 ApplesApplesApples
1 Pears
1 Banana
答案 2 :(得分:0)
使用awk / sort / uniq的一个解决方案可能是:
cat file|awk '{print $5}'|sort|uniq -c
答案 3 :(得分:0)
Perl:
perl -lane '$h{$F[4]}++ unless(/^\s*$/);END{print "$_ $h{$_}" for(keys %h)}' your_file
下面测试:
> cat temp
1 ABC 123 345 Apples
1 ABC 345 345 Apples
1 ABC 123 345 Apples_Fuji
1 ABC 123 345 ApplesApplesApples
1 ABC 123 345 Pears
1 ABC 123 345 Banana
> perl -lane '$h{$F[4]}++ unless(/^\s*$/);END{print "$_ $h{$_}" for(keys %h)}' temp
Pears 1
ApplesApplesApples 1
Banana 1
Apples 2
Apples_Fuji 1
>