在 miller 的数据字段中输出标题标签

在 miller 的数据字段中输出标题标签

给定文件.csv:

a,b,c
1,2,3

怎么能mlr输出:

a,b,c
1,2,c

使用标签名称$c 没有提前知道$c包含字母“C“?


注意:正确答案必须使用mlr才行。

答案1

编辑后的答案

你好,你可以使用这个脚本

mlr --csv put 'if (NR == 1) {
counter=1;
  for (key in $*) {
    if (counter == 3) {
    $[key]=key;
    }
    counter += 1;
  }
}' input.csv

作为输出,您将得到:

a,b,c
1,2,c

NR == 1获得第一行,并counter == 3获得第三个字段。

答案2

简单地与awk:

awk 'BEGIN{ FS=OFS="," }{ (NR == 1)? c=$NF : $NF=c }1' file.csv

示例输出:

a,b,c
1,2,c

答案3

磨坊主 v5.6.0允许使用$[[fieldno]]引用字段名称的值“fldno”,因此在您的情况下,字段 3 的名称是$[[3]]

    mlr --csv put '$c = $[[3]]' file.csv

相关内容