通过shell脚本将文本添加到CSV文件

时间:2014-01-06 05:00:23

标签: shell unix sed

我可以使用以下命令将文本写入文件

中每行的开头
sed 's/^/Adding Text /' filename

但是我想跳过第一行,并在开头单独添加另一个文本到第一行。

我当前的档案:

Summary, Task Id, Project ID, Project
Test file for Project Task, T12345, P123456, Test

我正在寻找的输出是:

Type, Summary, Task Id, Project ID, Project
Adding Text, Test1 file for Project Task, T12345, P123456, Test
Adding Text, Test1 file for Project Task, T12345, P123456, Test

Type应添加到第一行,Adding Text应添加到所有其他行。

2 个答案:

答案 0 :(得分:3)

试试这个:

sed '1s/^/Type, /;2,$s/^/Adding Text, /' filename

1s/^Type, /:在第1行的开头插入Type,
2,$s/^/Adding Text, /:从第2行开始,在每行的开头插入Adding Text,

或者您可以使用awk

awk 'NR==1{print "Type,",$0}NR>1{print "Adding Text,",$0}' filename

答案 1 :(得分:0)

这是一个awk

awk '{print NR==1?"Type,":"Adding Text,",$0}' file

测试行是否为数字1并打印一件事,如果没有打印其他的话。

使用括号可能会更强大。

awk '{print (NR==1?"Type,":"Adding Text,"),$0}'
awk '{print (NR>1?"Adding Text,":"Type,"),$0}'