总时间
本帖最后由 unix520 于 2023-08-04 21:27 编辑哈喽大家好
由于一个名称分成了很多行记录, 需要统计出所有名称相同总时间, 即会变成1个名称总时间 没有名称相同的也需要输出原数据 最大单位使用小时 精确到 时 分 秒
分隔符是 "\t" 第1列是名称 第3列时间
老6 ID 1h:2m:59s
张三 ID 0h:10m:00s
李4 ID 0h:07m:07s
老6 ID 0h:01m:02s
老6 ID 0h:2m:59s
张三 ID 2h:11m:01s
王五 ID 0h:0m:01s
喜欢awk
本帖最后由 unix520 于 2023-08-07 16:05 编辑
回复 2# 本友会机友会摄友会
直接处理不行吗要转一次csv 这么繁琐吗, 但为什么执行后变多了,,似乎并没有统加起来,,,用的ps1, 看的头晕 可以写完整的试试吗Set-Location ${PSScriptRoot}
#1 把不规范的txt,处理成规范的csv
$csv = Get-Content -LiteralPath "${PSScriptRoot}20230805in.txt" | ForEach-Object {
$_ -replace ' +',','
} | ConvertFrom-Csv -Header 'a','b','c'
$csv
$根据第一列分组 = $csv | Group-Object -Property 'a'
# group-object是一个数组,属性有:
# 数组属性有:g.name ,g.count,g.group
foreach ($i in $根据第一列分组) #遍历分组
{
$时间累加 = $null
foreach ($i2 in $i.Group) #遍历分组内的第3列的每一个值
{
$i3 = $i2.c -replace '' -as
$时间累加 += $i3
}
'{0} {1}' -f $i2.a,$时间累加 #输出结果
}
a b c
- - -
老6 ID 1h:2m:59s
张三 ID 0h:10m:00s
李4 ID 0h:07m:07s
老6 ID 0h:01m:02s
老6 ID 0h:2m:59s
张三 ID 2h:11m:01s
王五 ID 0h:0m:01s
老6 ID 1h:2m:59s
张三 ID 0h:10m:00s
李4 ID 0h:07m:07s
老6 ID 0h:01m:02s
老6 ID 0h:2m:59s
张三 ID 2h:11m:01s
王五 ID 0h:0m:01s
本帖最后由 unix520 于 2023-08-10 09:52 编辑
回复 4# 本友会机友会摄友会
我使用win10 22h2 最新系统自带PowerShell版本,执行上面2楼代码一闪而过, 不知道某些代码是不是让网页吃了对PowerShell有些陌生,看到老师发了100多文章,但都是中上知识编码难度,老师可以发一些非常简单PowerShell代码使用示例吗。例如输入文件有几种方法,输出文件又有几种方法,
另外希望老师发一些高速去重复行代码示例,处理文本列等示例,一些简单常用讲解文章。
回复 4# 本友会机友会摄友会
执行你脚本后输入和输出一样
本帖最后由 baby_神 于 2023-08-11 10:32 编辑
awk -F '[:\t ]+' '{
name = $1
time = $3 * 3600 + $4 * 60 + $5
total_time += time
}
END {
for (name in total_time) {
printf "%s\t%dh:%dm:%ds\n", name, total_time / 3600, (total_time % 3600) / 60, total_time % 60
}
}' filename
回复 7# baby_神
谢谢老师,写的非常优美
回复 1# unix520
unix520你好:
下面你发表的主题中均有大家给你的回复,而你却把1楼提问帖的内容修改成了如“谢谢”、“算了 不问了”、“新年快乐”等内容。大家回复帮你解决问题是要耗费时间和精力的,你这样做是对回复人的不尊重,也让该主题失去了参考价值。请恢复这些主题中1楼提问帖的内容。
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4319222
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4319242
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4319228
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4319296
回复 9# wh7211
没有不尊重意思, 请不要误会哦, 如有一些不当之处,实在抱歉, 希望大家谅解。已全部更正及还原主题意思
页:
[1]
2