我有一个很大的逗号分隔文件(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/