从解压缩的 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"
测试过,它似乎工作得很好
我在 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"
测试过,它似乎工作得很好