linux中具有不同数字但具有相同模式的求和行

linux中具有不同数字但具有相同模式的求和行,linux,sum,Linux,Sum,我想知道是否有可能在linux中直接汇总一个文件中包含的以下行 34 cars 13 cars 11 drivers 42 drivers 我想要的输出是 47 cars 53 drivers 谢谢大家! 我搜索了这个网站,但没有找到与我的请求类似的东西 您可以使用awk进行以下操作: awk '{a[$2]+=$1}END{for(i in a){print a[i], i}}' file UPD.如果模式由多个单词组成,请尝试 awk '{n=$1;$1="";a[$0]+=n}

我想知道是否有可能在linux中直接汇总一个文件中包含的以下行

34 cars 
13 cars 
11 drivers 
42 drivers
我想要的输出是

47 cars
53 drivers
谢谢大家!


我搜索了这个网站,但没有找到与我的请求类似的东西

您可以使用
awk
进行以下操作:

awk '{a[$2]+=$1}END{for(i in a){print a[i], i}}' file
UPD.如果模式由多个单词组成,请尝试

awk '{n=$1;$1="";a[$0]+=n}END{for(i in a){print a[i], i}}' file

但是,非规范化的空白仍然存在问题,例如,
a空格
a空格
是相同的模式。

太棒了!非常感谢。如果我们有不止一个单词,我们该怎么办?假设我们没有“汽车”,而是“二手车”?如果我想忽略区分大小写的行,我应该在哪里添加BEGIN{IGNORECASE=1}?已解决:您可以在这里看到解决方案:我当时是afk。我知道
tolower()
函数,您不必另外问一个问题。我建议在一个问题中完整详细地描述这个问题,以避免下次使用“乒乓”格式。