如何将第一行文件重复到所有第一列?

时间:2017-03-07 17:36:39

标签: csv awk sed

我有一个这样的文件:

Tax: FOO BAR BAR 
MQ 292018,794;7841123,751;97,000
MQ 293930,660;7841868,082;95,000
MQ 295908,118;7842349,097;93,000

我想改变一下:

Tax: FOO BAR BAR;MQ 292018,794;7841123,751;97,000
Tax: FOO BAR BAR;MQ 293930,660;7841868,082;95,000
Tax: FOO BAR BAR;MQ 295908,118;7842349,097;93,000

我想使用SED或AWK来做。有人有想法吗?

3 个答案:

答案 0 :(得分:4)

awk one-liner:

awk 'NR==1{a=$0;next}{print a";"$0}' file

答案 1 :(得分:2)

您可以使用head获取第一行,然后使用sed删除第一行,并将第一行内容添加到其余行的开头:

first_line=$(head -1 file)
sed "1d;s/^/$first_line;/" file > file.modified

答案 2 :(得分:1)

使用sed:

sed '1{h;d;};G;s/\(.*\)\n\(.*\)/\2 \1/' file