gpt4 book ai didi

Linux:获取具有特定模式的每一行的最后一个数字并将这些数字相加并将其保存为变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:11 32 4
gpt4 key购买 nike

我正在尝试能够编写一个命令来获取每个平台的最后一个数字并将它们相加,然后将该数字保存为一个变量。例如,对于下面随机文件中的“AIX”,我希望能够提取 1 和 115 并将 116 保存为变量。然后对于“Linx”,我想保存 2、16、18、96 和 1,并将总和保存为另一个变量。

cat randomfile.txt:

AIX,5.5.3-0,1
AIX,6.2.1-0,115
Linux x86-64,6.4.0-0,2
Linux x86-64,6.4.0-1,16
Linux x86-64,7.1.2-0,18
Linux86,6.1.3-4,96
Linux86,6.2.5-0,1

我能够使用“cat randomfile.txt | egrep "Linux"”来仅指定 Linux 行,尽管我需要一种方法来打印每行的最后一个数字,以便我可以将它们保存到一个变量中,然后添加它们并将它们保存为一个变量。

最佳答案

您可以使用此文件:

variable1=$(awk -F, '$1=="AIX"{aixsum+=$NF} END{print aixsum}' file)
variable2=$(awk -F, '$1~/^Linux/{linuxsum+=$NF} END{print linuxsum}' file)

第一个用逗号分割每条记录并测试第一个字段。如果它等于“AIX”,它会将最后一个字段汇总到 awk 变量 aixsum 中。处理完文件后,它将使用 END{} block 吐出结果。

第二个工作原理类似,但使用正则表达式进行搜索并查找第一个字段以“Linux”开头的任何记录并总结最后一个字段,在读取整个文件后打印它。

关于Linux:获取具有特定模式的每一行的最后一个数字并将这些数字相加并将其保存为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43480843/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com