gpt4 book ai didi

shell - 如果行中的特定数字大于数字,则 awk 获取第一列

转载 作者:行者123 更新时间:2023-12-05 08:14:45 24 4
gpt4 key购买 nike

我有一个数据文件 (file.txt) 包含以下几行:

123 pro=tegs, ETA=12:00, team=xyz,user1=tom,dom=dby.com
345 pro=rbs, team=abc,user1=chan,dom=sbc.int,ETA=23:00
456 team=efg, pro=bvy,ETA=22:00,dom=sss.co.uk,user2=lis

只有当 ETA= 数字大于 15 时,我才希望得到第一列 ($1),像这里一样,我将首先得到第二行和第三行只有列是预期的。

345
456

我试过 cat file.txt | awk -F [,TPF=]' '{print $1}' 但它打印的整行最后都有 ETA。

最佳答案

使用您展示的示例,请尝试遵循 GNU awk 代码。在我使用正则表达式 (^[0-9]+).*ETA=([0-9]+) 的地方使用 GNU awkmatch 函数: [0-9]+ 创建 2 个捕获组并将其值保存到数组 arr 中。然后检查条件,如果 arr 的第二个元素大于 15,则根据要求打印 arr 数组的第一个值。

awk '
match($0,/(^[0-9]+).*\<ETA=([0-9]+):[0-9]+/,arr) && arr[2]+0>15{
print arr[1]
}
' Input_file

关于shell - 如果行中的特定数字大于数字,则 awk 获取第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74610426/

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