gpt4 book ai didi

awk - 如何在awk中获取 'system'命令的输出

转载 作者:行者123 更新时间:2023-12-01 09:56:08 25 4
gpt4 key购买 nike

我有一个文件,一个字段是一个时间戳,如 20141028 20:49:49 , 我想得到小时 20 ,所以我使用 system命令 :

hour=system("date -d\""$5"\" +'%H'")

时间戳是我文件中的第五个字段,所以我使用了 $5 .但是当我执行程序时,我发现上面的命令只是输出 20并返回 0 所以 hour is 0 but not 20 ,所以我的问题是如何在时间戳中获取小时?

我知道一种使用 split 的方法像这样运行两次:
split($5, vec, " " )
split(vec[2], vec2, ":")

但是这种方法有点低效和丑陋。

那么还有其他解决方案吗?谢谢

最佳答案

另一种使用 gawk 的方法:

gawk 'match($5, " ([0-9]+):", r){print r[1]}' input_file

如果您想在 awk 中了解如何管理外部流程输出:
awk '{cmd="date -d \""$5"\" +%H";cmd|getline hour;print hour;close(cmd)}' input_file

关于awk - 如何在awk中获取 'system'命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26649683/

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