我有一个大的逗号分隔文件(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
答案 0 :(得分:12)
这可能会奏效:
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'
设置输出字段分隔符。
答案 1 :(得分:4)
我假设您有逗号分隔文件。
使用vim,打开文件。在正常模式下,键入
:%s/^/\=line('.').','/
:%s/^/\=line('.')/
在行的开头添加行号。由于您有逗号分隔文件(添加列),因此在行号后需要逗号。所以.','
有关:%s/^/\=line('.')/
答案 2 :(得分:3)
由于原帖中没有指定技术,我很高兴保持简单。
(所有花哨的Vim
/ bash
解决方案都可以,如果您知道自己在做什么)。
最后一步将使用1,2,3...
等填充索引列。
然后,您可以再次将生成的电子表格另存为CSV文件。
答案 3 :(得分:0)