mysql - 在 bash 流中压缩文件时保留文件名
问题描述
请求:当我使用流压缩文件时,我想保留原始文件名
我正在使用 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 infile 一起使用,并且 load data infile 需要一个文件名才能正常工作
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 文件?
解决方案
默认情况下,gzip 会将原始文件名和文件修改时间存储在 gzip 标头中。但是 gzip 需要使用文件名调用。例如
gzip foo
mv foo.gz bar.gz
gunzip -N bar.gz
会产生foo
.
推荐阅读
- apollo - 在生产模式下是否有任何选项可以禁用游乐场?
- jquery - UI 不显示列的标签(数据类型:文本)
- python - 为什么整数的 Python sum() 和 np.sum() 不同?
- c# - 是否可以为 C# 应用程序分配某些所需的内存和 CPU,以便在 CPU 使用率有时为 100% 时不会冻结?
- git - GitHub 桌面上传限制
- spring-boot - spring security - 发送http请求而不是https
- c# - Xamarin 在 Android 项目中打开内容页面
- android-radiogroup - radioGroup.setOnCheckedChangeListener 给出不兼容的类型:RadioButton 和 Int
- python - 在 Tensorflow 中使用 DENet 算法时输入形状不兼容
- arm - 如何在 LS1043a NXP 上禁用内核