从解压缩的 CSV 中删除 header

removing the header from an unzipped CSV

我在 unix 中使用以下行来解压缩一个 .tar.gz 文件并将其全部推送到一个漂亮的 CSV 文件中。

> gunzip -c foo.tar.gz > foo.csv

问题是,文件中附加了一种 header,它看起来像这样:

path-to-csv-on-s3/foo.csv����������������������������000644 �000765 �000024 �00132244376 12501623550 027273� 0����������������������������������������������������������������������������������������������������ustar�00hills���������������������������staff���������������������������000000 �000000 

我试过使用

gunzip -c s3-foo.tar.gz | sed "1 d" > foo.csv

删除第一行,但它也会删除所有列名。有人知道解决这个问题的简单方法吗?前几行数据如下所示:

path-to-csv-on-s3/foo.csv000644 000765 000024 00132244376 12501623550 027273 0ustar00hillsstaff000000 000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������"","id","price", "lala", "hooha"
1, some-ID, 45, 'blah', 'yay',
4, some-ID, 32, 'lah', 'yay!'

谢谢

尝试将此用于您的 sed 表达式:sed -e '1 s/^.*\(\"\".*\)//'.

使用替代运算符,看起来像 s/pattern-to-math/replacement/。我匹配行的开头 ^,之后的任何内容 .*,然后是 (...) 中的捕获组,以 "" 开头,然后是任何内容 .*。在operator的replacement部分,我简单的放入了capture group,</code>.</p> <p>我用 <code>echo "path-to-csv-on-s3/foo.csv000644 000765 000024 00132244376 12501623550 027273 0ustar00hillsstaff000000 000000 \"\",\"id\",\"price\", \"lala\", \"hooha\"" | sed -e '1 s/^.*\(\"\".*\)//'"","id","price", "lala", "hooha" 测试过,它似乎工作得很好