1,facebook.com 2,google.com 3,youtube.com 4,yahoo.com 5,wikipedia.org 6,baidu.com 7,live.com 8,amazon.com 9,qq.com 10,twitter.com
1,facebook.com 2,google.com 3,youtube.com 4,yahoo.com 5,baidu.com 6,wikipedia.org 7,live.com 8,qq.com 9,amazon.com 10,twitter.com diff -u /Users/stofke/Desktop/top2a.csv /Users/stofke/Desktop/top1a.csv | sed -n '1,2d;/^[-+]/p' | sort --field-separator=',' --key=2 +9,amazon.com -8,amazon.com +5,baidu.com -6,baidu.com +8,qq.com -9,qq.com +6,wikipedia.org -5,wikipedia.org
Pero realmente necesito esto:
+1, amazon.com -1 baidu.com -1 qq.com +1 wikipedia.org
No sé cómo hacer ese último paso
(También necesitaría calcular el% de disminución sabio o upload)
Agregar | paste -d, - -
| paste -d, - -
me da esto
+9,amazon.com,-8,amazon.com +5,baidu.com,-6,baidu.com +8,qq.com,-9,qq.com +6,wikipedia.org,-5,wikipedia.org
También podría considerar un enfoque que use join
ya que desea orderar el resultado al final. Me gusta:
join -t, -j2 <(sort -t, -k2 file1) <(sort -t, -k2 file2) | awk -F, '{n=$3-$2; if (n) print n, $1}'
Usando awk
awk -F, ' NR == FNR {n[$2] = $1; next} {n[$2] -= $1} END {for (k in n) if (n[k] != 0) printf " %2d %s\n",n[k],k} ' top1 top2
salidas
-1 amazon.com 1 qq.com -1 wikipedia.org 1 baidu.com
order no garantizada