gpt4 book ai didi

awk - a[FNR]=a[FNR]是什么意思?a[FNR ]","$0 :$0 in awk?

转载 作者:行者123 更新时间:2023-12-03 18:34:04 27 4
gpt4 key购买 nike

我知道 ?是为了类似的东西

(condition) ? statement-1: statement-2
但是,在这种情况下,我不明白 a[FNR]=a[FNR] 是如何工作的,什么时候是假的?
awk '{a[FNR]=a[FNR] ? a[FNR]","$0 : $0} END{for(i=1;i<=FNR;i++)print a[i]}' *.csv

最佳答案

a[FNR]=a[FNR] ? a[FNR]","$0 : $0
这里 ? 是一个 三元运算符 。其中条件只是 a[FNR] 。其中 a 是关联数组。
这意味着如果 a[FNR] 不为空且非零,则设置 a[FNR] = a[FNR] "," $0 表达式,否则设置 a[FNR] = $0
换句话说,它相当于:
if (a[FNR]) {
a[FNR] = a[FNR] "," $0
} else {
a[FNR] = $0
}

正确的方法是像 Ed 在评论中正确建议的那样使用它:
a[FNR] = (FNR in a ? a[FNR] "," : "") $0

关于awk - a[FNR]=a[FNR]是什么意思?a[FNR ]","$0 :$0 in awk?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65931608/

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