使用bash脚本重命名csv头

时间:2017-11-29 04:03:57

标签: bash sed header

我想使用bash脚本重命名csv文件的标头。原始csv文件头如下所示:

temp.csv
    ,id,too,Issue,Valid,DPT,RH,TMP,U,V
    1,1,22383,2015-01-15 00:00:00 GMT,2015-01-15 00:00:00 GMT,269.8000183,80.90000153,272.6300049,3.039999962,-0.560000002
    1

            id  to  Issue   Valid   DPT RH  TMP U   V
      1     2    3  4        5      6   7    8  9   10

I 

想要重命名列标题,如下所示:

 Cell   id  too Issue   Valid   DPT RH  TMP U   V
    1   2    3  4        5      6   7   8  9   10

1 个答案:

答案 0 :(得分:0)

您需要用不同的行替换第一行。 sed可以为您完成:

sed -i -e "1 { r"<(echo ' Cell   id  too Issue   Valid   DPT RH  TMP U   V')"
d
}" file

扩展命令

  • -i编辑文件(您可以跳过此处)
  • -e以下是sed命令
  • 当您看到第一行输入时,
  • 1执行{}中的命令
  • r插入以下&#34;文件&#34;
  • 中的文字
  • <( echo ' ... ')在标准输出上生成新标头,并将其分配给sed命令可读取的文件(r将插入该文本)
  • d删除该行

因此,插入一行新文本并删除旧文本。

如果您不需要编辑文件,则更容易:

(
  echo ' Cell   id  too Issue   Valid   DPT RH  TMP U   V'
  tail -n +2 file
) > file.new