使用 miller 将字段名称转换为小写

Convert field names to lower case using miller

我想使用 miller (mlr) 将列名转换为小写。我得到的最接近的是使用带有正则表达式的 rename 动词。 \L 应该改变大小写,但是列名的前缀是 "\L"

我使用的是 macOS Catalina 和 miller 5.10.0

echo -e 'A,B,C\n1,2,3' | mlr --csv --opprint rename -r '(.*),\L'

打印

\LA \LB \LC
1   2   3

但我想打印出来

a b c
1 2 3

两个示例方式:

echo -e 'A,B,C\n1,2,3' | mlr --csv put '
  map inrec = $*;
  $* = {};
  for (oldkey, value in inrec) {
    newkey = tolower(oldkey);
    $[newkey] = value;
  }
'

echo -e 'A,B,C\n1,2,3' | mlr --csv -N put -S 'if (NR == 1) {for (k in $*) {$[k] = tolower($[k])}}'

有时,标准工具更易于使用:

echo -e 'A,B,C\n1,2,3' | awk 'NR == 1 {[=10=] = tolower([=10=])} 1'