сохранить имя файла при сжатии файла в потоке bash - PullRequest
0 голосов
/ 24 мая 2018

Запрос: я хочу сохранить исходное имя файла при сжатии файла с использованием потока

Я сжимаю файл с помощью потока (очень большой файл) с помощью 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, а для загрузки данных загрузки требуется имя файла для правильной работы

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-файл с именем файла внутри?

1 Ответ

0 голосов
/ 24 мая 2018

gzip по умолчанию сохранит исходное имя файла и время модификации файла в заголовке gzip.Однако gzip нужно будет вызывать с именем файла.Например,

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

будет производить foo.

...