如何在CSV文件中的每一行附加其他字段?

时间:2013-01-15 09:43:24

标签: linux bash shell csv scripting

这不是关于在文件中附加新文本行的问题;它是关于将数据附加到每一行。

我在CSV文件中有超过300行,我想在用逗号分隔的每一行中添加更多文本(用于MS Excel图表的格式)。

来自 ex.txt 文件:

12:11, 321
12:12, 23

我想在每一行附加更多字段,如下所示:

12:11, 321, 222, 55
12:12, 23, 33, 402

2 个答案:

答案 0 :(得分:2)

 while read line; do
     # modify $whatYouWantToAppend
     echo -e "${line} ${whatYouWantToAppend}\n" >> newTest.txt
 done < test.txt

答案 1 :(得分:2)

使用来自GNU CoreUtils的粘贴

假设您没有附加静态字符串,则问题在于您需要从一个文件中读取文本并附加另一个文件中的文本。这正是paste命令的作用。

示例文件

file1的内容:

12:11, 321
12:12, 23

file2的内容:

 222, 55
 33, 402

请注意file2第一列中的前导空格。这需要保留您描述的格式,在每个分隔符后面似乎是带有前导空格的CSV。

样本调用和输出

$ paste -d, file1 file2
12:11, 321, 222, 55
12:12, 23, 33, 402