Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows中使用Cygwin对文件进行排序_Windows_Sorting_Scripting_Cygwin_Rating_Awk - Fatal编程技术网

在Windows中使用Cygwin对文件进行排序

在Windows中使用Cygwin对文件进行排序,windows,sorting,scripting,cygwin,rating,awk,Windows,Sorting,Scripting,Cygwin,Rating,Awk,我有一个文件,里面有成千上万的啤酒评论,我需要整理。每个啤酒评论都是这样的: beer/name: John Harvards Simcoe IPA beer/beerID: 63836 beer/brewerID: 8481 beer/ABV: 5.4 beer/style: India Pale Ale (ITA) review/appearance: 4/5 review/aroma: 6/10 review/palate: 3/5 review/taste: 6/10 review/ov

我有一个文件,里面有成千上万的啤酒评论,我需要整理。每个啤酒评论都是这样的:

beer/name: John Harvards Simcoe IPA
beer/beerID: 63836
beer/brewerID: 8481
beer/ABV: 5.4
beer/style: India Pale Ale (ITA)
review/appearance: 4/5
review/aroma: 6/10
review/palate: 3/5
review/taste: 6/10
review/overall: 13/20
review/time: 11575857200

我需要对评论数量最多的前十大啤酒进行分类。啤酒标识符“beer/name.”

听起来像是一个家庭作业,但无论如何(我喜欢啤酒),这是一款开胃酒

awk -F'[ /]' -v note=20 '
    /^beer\/name:/{$1=$2="";beer=$0}
    /^review/ && !/review\/time/{arr[beer]+=$3/$4; count++}
    END{for (a in arr) print a, arr[a]*note/count "/" note}
' beers.txt

从这里可以很容易地将输出通过管道传输到
sort
&
head
命令,以对特定列进行排序并分别从顶部显示N行。(或者使用
awk
本身,但更难…

听起来像是家庭作业=)