我有一个很大的逗号分隔文件(6GB),想向其中添加一个索引列。我正在寻找Unix类型的解决方案以提高效率。我使用的是Mac。

我有这个:

V1  V2  V3
0.4625  0.9179  0.8384
0.9324  0.2486  0.1114
0.6691  0.7813  0.6705
0.1935  0.3303  0.4336

想得到这个:
ID  V1  V2  V3
1   0.4625  0.9179  0.8384
2   0.9324  0.2486  0.1114
3   0.6691  0.7813  0.6705
4   0.1935  0.3303  0.4336

最佳答案

这可能会起作用:

awk -F'\t' -v OFS='\t' '
  NR == 1 {print "ID", $0; next}
  {print (NR-1), $0}
' input.csv > output.csv

awk中,NR变量是“到目前为止看到的输入记录的总数”,通常表示“当前行号”。因此,第一行中的NR == 1是我们匹配第一条记录并添加“ID”列标题的方式,对于其余行,我们将NR-1用作索引。
-F'\t'参数设置输入字段分隔符,-vOFS='\t'设置输出字段分隔符。

关于bash - 将索引列添加到CSV文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30530407/

10-14 14:23