这给了我重复次数和重复的次数
$ awk -F "\"*,\"*" '{print $2}' file.csv | sort | uniq -c | sort -nr | head -n 2
4 12345
3 56789
我想要做的是添加第一列(3 + 4)。如果我将上面的输出写入文件test
,我可以这样做。我可以这样做:
$ awk -F" " '{print $1}' test
4
3
$ awk -F" " '{print $1}' test | paste -sd+
4+3
$ awk -F" " '{print $1}' test | paste -sd+ | bc
7
但我希望能够在一行中完成此操作,并且理想情况下不想写入文件,想了解以下内容无效的原因
awk -F "\"*,\"*" '{print $2}' file.csv | sort | uniq -c | sort -nr | head -n 2 | awk -F" " '{print $1}' | paste -sd+ | bc
我的第二个awk似乎不喜欢输入。
任何人都可以建议我这样做,以及我做错了什么?
EDIT1 - file.csv如下所示:
"Date","Number"
"2015-11-01","12345"
"2015-11-01","12345"
"2015-11-01","12345"
"2015-11-01","12345"
"2015-11-01","56789"
"2015-11-01","56789"
"2015-11-01","56789"
答案 0 :(得分:0)
要求救援!
... | sort -nr | awk 'NR<=2{sum+=$1} END{print sum}'
你也可以在awk中选择前两行和求和。