我有一个像这样的CSV文件:
file1
field1 field2 field3 field4
000000 nodata NP1212 1.1212
000000 212344 NP1212 1.1232
000000 343423 NX3212 1.2342
000000 542346 NX3212 1.6345
000000 nodata NZ3244 1.0345
它是制表符分隔的,大约有70000行,有23个字段,按字段3排序。如何按行拆分以创建此类输出?
file1_NP1212
field1 field2 field3 field4
000000 nodata NP1212 1.1212
000000 212344 NP1212 1.1232
file1_NX3212
field1 field2 field3 field4
000000 343423 NX3212 1.2342
000000 542346 NX3212 1.6345
file1_NZ3244
field1 field2 field3 field4
000000 nodata NZ3244 1.0345
答案 0 :(得分:1)
这个int *ptr = my_rectangle;
*(ptr) /= 2;
*(ptr+1) /=2;
命令可以解决这个问题:
awk
答案 1 :(得分:0)
如果你想在每个输出文件中保留标题行并且对于用完文件句柄而言是强健的,那么试试这个。
awk -F '\t' 'NR == 1 { header=$0; next }
$3 != prev { close(handle); prev = $3; handle = "file1_" $3; print header >handle }
{ print >handle }' file1
这假设输入已经在字段3上排序;如果没有,你将最终覆盖部分输出的文件。