我必须使用我的Linux机器处理文件。
[当我尝试将输出写入csv文件时,然后在同一行脚本中将其gzip压缩:
processing > output.csv | gzip -f output.csv
我收到“文件结尾意外”错误。即使我使用Linux机器下载文件,也会出现相同的错误。
[当我不通过终端(或一行)进行gzip压缩时,一切正常。
为什么所有命令都在一行中时为什么会失败?
当您使用>
时,过程的输出将被重定向,并且以后不能由管道使用。您有两个选择:
processing > output.csv &&
gzip output.csv
将程序的未处理输出写入文件output.csv
,然后在第二个任务中gzip解压缩该文件,将其替换为output.gz
。根据数据量,这可能不可行(存储需求为完全未压缩的输出加上压缩后的大小)
processing | gzip > output.csv.gz
这将压缩您的进程的输出[[in-line,并将其直接写入输出文件,而无需将未压缩的输出存储在中间文件中。
> output.csv
您可以:
|
或:您可以使用2>errors.txt
将错误从stderr重定向到文件,否则它们将显示在屏幕上