小编Set*_*ton的帖子

连接多个压缩文件,跳过除第一个文件之外的所有文件中的标题行

我有一组 gzip 压缩文件,我想将它们组合成一个文件。它们各自具有相同的格式。我想仅保留第一个文件的标头信息,并在后续文件中跳过它。

\n\n

举一个简单的例子,我有四个相同的文件,其内容如下:

\n\n
$ gzcat file1.gz\n# header\n1\n2\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想结束

\n\n
# header\n1\n2\n1\n2\n1\n2\n1\n2\n
Run Code Online (Sandbox Code Playgroud)\n\n

实际上,我可以拥有不同数量的文件,因此我希望能够以编程方式执行此操作。这是我迄今为止拥有的非编程解决方案......

\n\n
cat <(gzcat file1.gz) <(tail -q -n +2 <(gzcat file2.gz) <(gzcat file3.gz) <(gzcat file4.gz))\n
Run Code Online (Sandbox Code Playgroud)\n\n

这个命令有效,但它是 \xe2\x80\x9chard 编码的 \xe2\x80\x9d 来处理四个文件,\n我需要将它概括为任意数量的文件。\xc2\xa0\n我使用作为bash外壳,如果这有帮助。我的偏好是性能(实际上文件可能有数百万行长),所以如果速度很快,我可以接受不太优雅的解决方案。

\n

gzip shell-script tail text-processing cat

5
推荐指数
1
解决办法
2422
查看次数

标签 统计

cat ×1

gzip ×1

shell-script ×1

tail ×1

text-processing ×1