我试图查找特定电子邮件ID重复的次数。使用uniq -c
输出管道420 aol.com
,但我需要aol.com 420
如何执行此操作,因为uniq -c
适用作前缀计数
答案 0 :(得分:2)
您可以将输出传递给awk
:
string='420 aol.com'
echo "$string" | awk '{print $2,$1}'
aol.com 420
默认情况下,awk
用空格分隔每个字段。
420
是第一个字段$1
aol.com
是第二个字段$2
。
这只是告诉awk
以相反的顺序打印这些字段。 {print $2,$1}
答案 1 :(得分:0)
如果您有电子邮件地址列表,例如:
$ cat emails.txt
1@aol.com
2@yahoo.com
3@aol.com
你需要使用awk:
来计算他们的域名$ awk -F@ '{a[$2]++} END {for(i in a) print i, a[i]}' emails.txt
aol.com 2
yahoo.com 1
记录没有特别的顺序输出。如果使用Gnu awk,则可以在PROCINFO["sorted_in"]="@val_num_asc";
块的开头使用BEGIN
(请参阅here选项)订购记录。