如何通过外壳脚本为 csv 文件中的第一列添加值



我试图将值添加到现有文件的第一列,我只需要值应该仅在第一列中,而不是所有列中。

现存

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 可能会损坏。

最新更新