Как объединить подкачку (.swp) файл в исходный файл?

Я запускал программу от удара с ее выводом, перенаправленным в файл (test.out). Процесс умер из-за некоторых проблем (проблемы не важны в этом контексте), и теперь меня оставляют с двумя файлами:

  • Исходный выходной файл test.out который составляет 2,1 ГБ, и
  • Файл подкачки сгенерирован .test.out.swp который составляет 19 МБ

Существует ли способ объединить эти файлы, как в добавлении файла подкачки в конце исходного файла?

Или, я нахожусь неправильно в желании сделать это? Файл подкачки имеет другую цель, чем быть используемым с выводом/журналом?

2
задан 4 April 2018 в 04:58

2 ответа

Vim использует файлы .swp в качестве областей хранения для незавершенной работы, что позволяет ему редактировать очень большие файлы, даже если они не могут полностью поместиться в памяти. Это наследие со времен, когда ОЗУ компьютера было очень маленьким, а большие файлы, которые не помещались в памяти, были более распространенными, но они остались, и это означает, что мы можем редактировать файлы размером в несколько гигабайт, не занимая всю доступную оперативную память и не убивая процессы. Vim удаляет файл .swp, когда он закончит редактирование, или оставляет его, если процесс завершается ненормально.

Если у вас есть файл .swp и оригинальный файл, вы можете несколько восстановить утраченную работу. Это задокументировано здесь:

http://vimdoc.sourceforge.net/htmldoc/recover.html

Чтобы восстановить файл, просто откройте исходный файл. vim заметит, что с файлом уже связан файл .swp, предупредит вас и спросит, что вы хотите сделать. Предполагая, что у вас есть необходимые привилегии для записи в файл, «восстановление» должно быть одной из указанных опций.

В качестве альтернативы вы можете запустить новый экземпляр vim (на пустом документе) и использовать команду :recover <file>, указав файл, который вы хотите восстановить.

Обратите внимание, что основное использование файлов .swp - это временное хранилище для vim, позволяющее редактировать большие файлы, а НЕ восстановление. Таким образом, vim не ведет журнал записи в файл, и если во время редактирования отключается питание .swp-файл может быть поврежден. К счастью, инструмент восстановления в vim достаточно терпим к частичному повреждению файлов .swp и будет пытаться восстановить столько потерянных изменений в файле, сколько сможет. Посмотрите на наличие трех вопросительных знаков: ??? в восстановленном файле, так как они будут вставлены при обнаружении повреждения в файле .swp.

Как только вы будете довольны восстановлением, вам нужно вручную удалить файл .swp, чтобы не получать предупреждение при редактировании файла. Будьте осторожны, чтобы не запускать процесс восстановления во второй раз.

3
ответ дан 2 December 2019 в 02:13

Прямой ответ

Технически отвечать на Ваш вопрос:

cat test.out > experiment.out
cat .test.out.swp >> experiment.out

Первое перенаправление cat команда > создает новый файл. Второе перенаправление cat команда >> добавляет в существующий файл.

В действительности experiment.out вероятно, не будет применимо, потому что Вы добавляете яблоко к апельсину.


Альтернативное восстановление

Можно погуглить восстановление файлов: Superuser.com, Как я могу восстановить исходный файл с .swpfile? В коротком использовании:

vim -r .swp

Сделайте копии всех файлов сначала!

Если бы это не работает, я использовал бы gedit на обоих файлах на отдельных вкладках и затем на третьей вкладке вставляют текст, скопированный с первых двух вкладок.

1
ответ дан 2 December 2019 в 02:13

Другие вопросы по тегам:

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