我正在尝试从大型csv文件中提取相关信息以进行进一步处理,因此我希望在我的输出mini-csv文件中保存列名(标题)。
我有:
grep "Example" $fixed_file | cut -d ',' -f 4,6 > $outputpath"Example.csv"
在生成具有两列的csv文件时工作正常,但我希望标题信息也包含在输出文件中。
答案 0 :(得分:0)
使用命令分组并将head -1
添加到混音:
{ head -1 "$fixed_file" && grep "Example" "$fixed_file" | cut -d ',' -f 4,6 ;} \
>"$outputpath"Example.csv
答案 1 :(得分:0)
我的建议是用一个awk脚本替换你的多命令管道。
"position": {
"interpolationAlgorithm": "LAGRANGE",
"interpolationDegree": 1,
"epoch": "2012-08-04T16:00:00Z",
"cartographicDegrees": [
//time, lat, long, alt
0,-116.52,35.02,80,
300,-116.52,35.04,4000,
600,-116.52,35.08,9000,
900,-116.52,35.02,3000,
1100,-116.52,35.02,1000,
1400,-116.52,35.02,100
]
}
如果您希望标题仅包含标题字段字段4和6,则可以将其更改为:
awk '
BEGIN {
OFS=FS=","
}
NR==1;
/Example/ {
print $4,$6
}
' "$fixed_file" > "$outputpath/Example.csv"
Awk脚本由awk '
BEGIN {
OFS=FS=","
}
NR==1 || /Example/ {
print $4,$6
}
' "$fixed_file" > "$outputpath/Example.csv"
对组成。缺少的语句假设您要打印该行(这就是condition { statement }
打印标题的原因。)
当然,你可以把它压成一个单行:
NR==1;