agc Asked: 2018-03-15 07:31:49 +0800 CST2018-03-15 07:31:49 +0800 CST 2018-03-15 07:31:49 +0800 CST 在miller的数据字段中输出标题标签 772 给定file.csv: a,b,c 1,2,3 如何mlr制作输出: a,b,c 1,2,c 使用包含字母“ c ”的事先$c 不知道的标签名称?$c 注意:正确答案mlr只能使用。 text-processing miller 3 个回答 Voted Best Answer aborruso 2019-01-05T10:16:34+08:002019-01-05T10:16:34+08:00 编辑后的答案 你好,你可以使用这个脚本 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获得第三个字段。 RomanPerekhrest 2018-03-15T07:40:31+08:002018-03-15T07:40:31+08:00 只需awk: awk 'BEGIN{ FS=OFS="," }{ (NR == 1)? c=$NF : $NF=c }1' file.csv 样本输出: a,b,c 1,2,c pjfarley3 2019-10-05T16:07:34+08:002019-10-05T16:07:34+08:00 miller v5.6.0允许使用$[[fieldno]]来引用字段编号"fldno"的名称的值,因此在您的情况下,字段 3 的名称是$[[3]]. mlr --csv put '$c = $[[3]]' file.csv
编辑后的答案
你好,你可以使用这个脚本
作为输出,您将拥有:
NR == 1
拥有第一行,并counter == 3
获得第三个字段。只需
awk
:样本输出:
miller v5.6.0允许使用
$[[fieldno]]
来引用字段编号"fldno"的名称的值,因此在您的情况下,字段 3 的名称是$[[3]]
.