a.txt 是ANSI编码
需要计算出2个字段之间的经过时间, 如果有多个相同"企业 名称" 字段, 计算出从发现有第一个 "企业 名称" 时间 到 "退出" 字段之间的时间过程, 以第一个有 "企业 名称" 时间开始为准
以小时为最大单位
似乎可以用 "企业 名称" 作为匹配字段, 似乎可以把 ">"作为分隔符 因为名称后面会有空格情况 也会有可能存在使用某些符号, 代码尽量不要被名称字符串影响或其他原因而导致有一些没有被计算出
不知道为什么, 发现这个有一些没有被计算到, 现在输出格式也需要改变一下- PowerShell "(gc a.txt) -match '企业\s*名称:|退出' | forEach{if(++$i%%2){$a=$_ -split '>\s*企业\s*名称:'; '企业 > ' + $a[1];}else{$b=$_ -replace '>.*$'; $t=get-Date ([DateTime]$b-[DateTime]$a[0]).Ticks; '时间 > ' + '{0:HH}h:{1:mm}m:{2:ss}s' -f $t,$t,$t;echo '';}}" > b.txt
复制代码
- 计算后, 请使用另一种时间格式拼接显示 使用Tab 即"\t" 分隔符拼接
- 例
- 企业 名称:优 美 利 A 时间: 00h:05m:01s
- 企业 名称:利海 B 时间: 00h:01m:01s
复制代码 因为网页会把"\t" 分隔符变成空格, 所以提供输出格式样本
https://wwkt.lanzoul.com/ifa6C15sw4ne
awk PowerShell bat 码 都行 |