Как добавить строку в заархивированный файл без распаковки?

Почему бы не скопировать файл в новое имя файла с помощью file. copy()

Из руководства по R:

file.copy(from, to, overwrite = recursive, recursive = FALSE,
      copy.mode = TRUE, copy.date = FALSE)
7
23.02.2016, 05:53
3 ответа

Насколько велик таблица ваших сотрудников? Если у вас нет миллиона сотрудников, а каждая запись занимает тысячи байтов, вероятно, даже не стоит беспокоиться о сжатии вывода.

Почти наверняка не стоит сжимать его во время создания выходного файла - так почему бы просто не вывести его в несжатый простой текст, запустите count = $ (wc -l out1); echo "T $ count" >> out1 , а затем сжать его с помощью gzip out1 ?

в качестве альтернативы, просто запустите какой-нибудь вариант select count (*) from employee перед командой выключить спул .

2
27.01.2020, 20:14

Из man gzip вы можете прочитать, что файлы gzip ped можно просто объединить:

РАСШИРЕННОЕ ИСПОЛЬЗОВАНИЕ Можно объединить несколько сжатых файлов. В этом случае gunzip извлечет всех участников сразу. Например:

  gzip -c file1> foo.gz 
gzip -c file2 >> foo.gz 
 
Затем 
 
gunzip -c foo 
 
эквивалентно 
 
cat file1 file2 
 

Это также можно сделать с помощью cat для файлов gzip ped, например:

seq 1 4 > A && gzip A
echo 5 > B && gzip B
#now 1 to 4 is in A.gz and 5 in B.gz, we want 1 to 5 in C.gz:
cat A.gz B.gz > C.gz && zcat C.gz
1
2
3
4
5
#or for appending B.gz to A.gz:
cat B.gz >> A.gz

Чтобы сделать это без внешнего файла для добавления строки, выполните следующие действия:

echo "this is the new line" | gzip - | cat - >> original_file.gz
22
27.01.2020, 20:14

Я боролся с похожей задачей :добавить несколько строк в сжатый дамп sql. Мое решение было основано на ответе @Fiximan

echo 'append this string' | gzip >> out.gz
2
27.01.2020, 20:14

Теги

Похожие вопросы