在csv文件中插入一行

Moh*_*hit 18 bash shell terminal awk sed

我有一个巨大的csv文件(按太字节为单位).

现在,我想在顶部插入一行标题.

例如,如果input.csv如下所示:

 1,2,3,4
 22,3,23,1
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像

id1,id2,id3,id4
 1,2,3,4
 and so on
Run Code Online (Sandbox Code Playgroud)

我如何从shell,终端,awk,bash这样做?/

Lee*_*ton 26

到位,使用sed:

sed -i 1i"id1,id2,id3,id4" file.csv
Run Code Online (Sandbox Code Playgroud)

编辑:

正如@Ed Morton指出的那样,使用sed和-iswitch sed编辑文件就位,因此在编辑大文件时会很危险.如果在-i选项后提供前缀,则sed会创建备份.所以这样的事情会更安全:

sed -i.bak 1i"id1,id2,id3,id4" file.csv
Run Code Online (Sandbox Code Playgroud)

然后将原始文件放在 file.csv.bak

  • 我绝对不会对这么大的文件这样做。sed 正在动态创建一个 tmp 文件 - 如果它找不到它的空间,如果您丢失了原始文件的内容,我不会感到惊讶。只需使用“cmd file > tmp && mv tmp file”,您就知道自己是安全的。 (2认同)

Gil*_*not 15

这很简单:

{ echo "id1,id2,id3,id4"; cat file.csv; } > newfile.csv
Run Code Online (Sandbox Code Playgroud)

使用简单的shell连接.

编辑

经过以下讨论后,我提出这样的建议:

  • 用你的标题创建一个文件,说 head.txt

然后 :

cat head.txt file.csv > newfile.csv
Run Code Online (Sandbox Code Playgroud)