linux中具有不同数字但具有相同模式的求和行
我想知道是否有可能在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}
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()
函数,您不必另外问一个问题。我建议在一个问题中完整详细地描述这个问题,以避免下次使用“乒乓”格式。