在bash流中压缩文件时保留文件名

iezvtpos  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(282)

请求:我希望在使用流压缩文件时保留原始文件名
我正在用gzip-9压缩一个流文件(非常大的文件)

gunzip -c ./test.zip | sed 's/;;/;0;/g' | sed 's/,/;/g' | sed 's/xy_ign/xy_ign_latitude;xy_ign_longitude/' | sed 's/xy_ign/xy_geopad_latitude;xy_geopad_longitude/' | gzip -9 >test.gz

当我解压缩文件时

gunzip test.gz

结果文件名为test,而不是test.csv
我知道我可以使用-n选项来检索原始文件名

gunzip -N test.gz

但是该文件与mysql load data infle一起使用,并且load data infle需要一个文件名才能正常工作

mysql -u user -p -e "LOAD DATA LOCAL INFILE '/tmp/test.gz' INTO TABLE test FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' ; SHOW WARNINGS" test_db

我怎样才能有一个gzip文件的文件名在里面?

sd2nnvve

sd2nnvve1#

默认情况下,gzip将原始文件名和文件修改时间存储在gzip头中。但是gzip需要用文件名调用。例如

gzip foo
mv foo.gz bar.gz
gunzip -N bar.gz

将产生 foo .

相关问题