大文件上的猫不起作用

Linux毯

我正在尝试将两个大文件串联在一起。文件* _1P.gz包含与相应的* _2P.gz相同的行数。

文件A_1P.gzA_2P.gz都包含1104507560行。
文件B_1P.gzB_2P.gz都包含1182136972行。

但是,cat A_1P.gz B_1P.gz > C_1P.gz| wc -l返回186974687行和cat A_2P.gz B_2P.gz > C_2P.gz| wc -l返回182952523行,因此它们不仅比两个输入文件小得多(它们的长度应大于2B,而小于2M),而且它们的行数也不同。该命令运行时未显示任何错误。

我不知道发生了什么,我也生成了这四个大文件,cat并且工作正常。

  • 可能是什么问题?
  • 在不使用压缩文件的情况下,我还必须连接其他哪些选项cat

我正在使用CentOS服务器。我仍然有197G的空间,所以这不应该成为问题(或者至少应该显示一个错误)。

库萨兰达

请注意,文件已压缩因此wc -l不能在不先解压缩文件的情况下直接使用它们来计算文件中的原始行数。

可以使用cat串联这些类型的压缩文件,因为生成的文件本身就是有效的压缩文件。稍后对其进行解压缩将生成一个文件,该文件是两个文件中未压缩数据的串联。

cat A_1P.gz B_1P.gz >C_1P.gz

要计算中的行数C_1P.gz

zcat C_1P.gz | wc -l

或者

gunzip -c C_1P.gz | wc -l

或者

gzip -dc C_1P.gz | wc -l

但是请注意,我们需要解压缩文件以计算行数,否则,我们将计算文件压缩算法作为压缩数据的一部分生成的“随机”换行符(这些与未压缩文件中的行无关) )。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章