сохранить имя файла при сжатии файла в потоке bash

0

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

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

  • 1
    Что произойдет, если вы используете test.csv.gz качестве имени файла?
Теги:
compression
gzip

1 ответ

0

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню