我试图将值添加到现有文件的第一列,我只需要值应该仅在第一列中,而不是所有列中。
现存
col1,col2,col3
1,2,3
4,5,6
预期
col0,col1,col2,col3
1,2,3
4,5,6
1,2,3 个值属于 col1,col2 等,第一列应该单独更新我喜欢,其他值应该留空。
我使用 sed 实用程序尝试了它,但它考虑了整行。
如果您想在第一行前面加上sed
:
$ sed '1s/^/col0,/' input.csv
col0,col1,col2,col3
1,2,3
4,5,6
s//
命令之前的1
意味着它只会在第一行上运行。
似乎任务是:
在- CSV 文件的第一行前面附加一个新的非空列
- 在所有其他行前面加上一个新的空列
使用 sed,您可以执行以下操作:
sed <input.csv >output.csv '
s/^/,/ # prepend empty column to every row
1s//col0/ # on row(line) 1 add the header text
# (empty regex means reuse previous one)
# implicit print
'
使用您的示例输入:
col1,col2,col3
1,2,3
4,5,6
输出将为:
col0,col1,col2,col3
,1,2,3
,4,5,6
请注意,如果任何字段包含嵌入的换行符,则 CSV 可能会损坏。