Могу ли я перенести VirtualBox Ubuntu Guest в * real * Hardware Box?

Ваше описание проблемы не очень специфично. Я предполагаю, что вы хотите удалить двойные кавычки только для 1-го и 3-го полей. Если это так, любой из них должен работать:

sed
sed -r 's/^"([^"]+)"(\s*,\s*[^,]+)\s*,\s*"([^"]+)"/\1\2, \3/' file.csv
Объяснение -r позволяет использовать расширенные регулярные выражения, позволяя нам использовать круглые скобки для захвата шаблонов, не требуя их устранения. Итак, мы сопоставляем цитату в начале строки (^"), за которой следует один или несколько символов без кавычек ([^"]+), затем закрывающая цитата, за которой следует 0 или более пробелов, запятая, затем 0 или больше пробелов (\s*,\s*), затем участок не запятых до следующей запятой (это определяет второе поле). Наконец, мы ищем 0 или более пробелов, запятую и заменяем это на 1-й захваченный шаблон (\1), затем 2-й (\2), запятую, пробел и третью. Perl
perl -pe 's/^"([^"]+)"(\s*,\s*[^,]+)\s*,\s*"([^"]+)"/$1$2, $3/; ' file.csv
Объяснение -p означает печать каждой строки после применения скрипта, переданного в -e. Сам скрипт является в основном тем же самым регулярным выражением, что и в sed выше. Только здесь захваченные паттерны $1. awk
awk -F, -v OFS="," '{gsub("\"","",$1)0gsub("\"","",$3);}1;' file.csv 
Объяснение -F устанавливает разделитель полей в ,. OFS - разделитель выходного поля, который также установлен на ,, чтобы линии печатались правильно. [F20] делает замену, заменяя все " ничем, поскольку мы запускаем ее на 1-м ($1) и 3-м полях ($3), она удаляет только кавычки из этих полей. [F24] - это всего лишь awk стенограмма «print the line».
1
задан 1 February 2014 в 03:00

4 ответа

Не пробовал это сам, но описание кажется достаточно реалистичным, чтобы попробовать.

1
ответ дан 26 May 2018 в 00:54
  • 1
    Статья, о которой вы упоминаете, похожа на то, куда я хочу пойти. Если я игнорирую его проблемы с LVM Fedora, он почти разрешает одну из моих проблем: как получить часть виртуальной машины VM в окружении Host. Он упоминает инструмент VirualBox VBoxManage , который позволяет монтировать образ необработанного образа VM на хосте. Однако есть проблема с этой статьей, поскольку она связана с Windows Host. command-name в порядке, но ни один из аргументов не распознается ... но я предполагаю, что то же самое доступно для Linux ... Кто-нибудь знает синтаксис? – Peter.O 21 October 2010 в 03:08
  • 2
    Попробуйте запустить "VBoxManage internalcommands " - он печатает информацию об использовании. Кажется, что этого достаточно. – Serge Broslavsky 21 October 2010 в 09:35

1> сделать tar для вашей виртуальной ОС OS

2> начать с живого дистрибутива

3> разблокировать вашу виртуальную ОС в целевом разделе / ​​s (/ dev / sda1 например,

4> сделать загрузочный раздел (fdisk может вам помочь): # fdisk / dev / sda Команда (m для справки): a (a = включить загрузочный флаг) Номер раздела (1- 4): 1 (1 = / dev / sda1) Команда (m для справки): q (q = exit)

5> установить grub в mbr (https://wiki.ubuntu.com/Grub2 ) # mount / dev / sda1 / mnt / # mount --bind / dev / mnt / dev # mount --bind / proc / mnt / proc # mount --bind / sys / mnt / sys # cd / mnt & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; ; chroot. # (chroot) update-grub # (chroot) grub-install / dev / sda (NOT / dev / sda1!) # (chroot) grub-install --recheck / dev / sdX

6> Наслаждайтесь ...

1
ответ дан 26 May 2018 в 00:54
  • 1
    tar моя ОС VirtualBox звучит так просто ... но не для меня ... Например; Куда мне дегустировать? Я предполагаю, что соответствующий способ tar файловой системы не использовать его ... поэтому я загрузил виртуальную машину через LiveCD ... Это дало мне доступ к приводу VM через LiveCD / media .... но как я могу получить данные из виртуальной машины. Для общих папок VirtualBox требуется GuestAddons, для чего требуется перезагрузка, которая перезапускает Live CD в состояние no-Addons ... Или я что-то пропустил об общих папках VirtualBox / – Peter.O 21 October 2010 в 02:23
  • 2
    Вы можете tar (rsync также) систему напрямую, даже если она работает (это Linux ...): – daniele 21 October 2010 в 13:19
  • 3
    Вы можете настроить систему напрямую, даже если она работает. Это Linux ;-). Сначала установите эти пакеты: sshfs ( fuse.sourceforge.net/sshfs.htm ) и смонтируйте реальный каталог внутри виртуального бокса. Например, вы можете использовать внутри виртуального бокса, как я уже сказал, pendrive (смонтированный, допустим, в / media / pendrive) следующим образом: # sshfs root@10.0.2.2: / media / pendrive / mnt После tar непосредственно из вашего RUNNING virtualbox для pendrive (Linux может): # cd / # tar -cvpzf /mnt/backup.tgz --exclude = / proc / -exclude = / lost + found / -exclude = / mnt / -exclude = / sys / / – daniele 21 October 2010 в 13:48

Что именно от установки вы хотите перенести? Если все, о чем вы заботитесь, это пользовательские данные и предпочтения, вы могли бы просто скопировать все из своего домашнего каталога на виртуальную машину в файловую систему вне VM (например, keydrive), скопировать эти файлы на новую установку Ubuntu, а затем переустановите все программы, которые вы установили на виртуальной машине. Зависит от того, насколько вы настроили установку VM, а также о том, насколько сложны другие решения здесь.

1
ответ дан 26 May 2018 в 00:54
  • 1
    Я использую Ubuntu (первый пользователь Linux) на реальном оборудовании. Я изучал много , но моя система собрала много шума. Я изменил настройку и забыл, где я ее установил, и т. Д. Моя идея - использовать (минимальный) опыт, который у меня есть сейчас, и создать параллельную систему VM без ошибок, а затем просто перетащить ее на основное оборудование , Я могу потратить свое время на это и по-прежнему экспериментировать с текущим. Это также хорошее «обучение». проект ... но я чувствую, что я откусил немного больше, чем могу пожевать :) ... медленно добираюсь ... – Peter.O 21 October 2010 в 01:23

Мне нравится использовать rsync для резервного копирования моей системы. Это полезно для справочника home directroy или ect, но может и не быть тем, что вы ищете с точки зрения полной миграции системы. Чтобы использовать rsync, вам необходимо установить ubuntu на обе системы. Обновите оба из них, чтобы пакеты были одинаковыми и находились на одном уровне (это не обязательно, но облегчает работу). Затем, чтобы скопировать домашний каталог с сервера1 на server2, вы можете запустить следующее на сервере1:

$rsync -avz /home/username/ username@server2:/home/username/

То, что мне нравится в этом, заключается в том, что rsync будет вычислять различия между каталогами и переносить изменения, а чем все. Таким образом, вы можете сохранить резервную копию, выполнив на сервере2 (для резервного копирования на сервере1):

$rsync -avz /home/username/ username@server1:/home/username/

hth

1
ответ дан 26 May 2018 в 00:54
  • 1
    Спасибо, я использовал rsync для резервного копирования моих разделов, отличных от ОС (например, данных, таких как музыка и т. Д.). Мне тоже нравится, как работает rsync; очень эффективный. Моя основная «проблема» что я не знаю, будет ли работать простая копия файла из виртуальной машины в эквивалентные разделы. Например. Как Ubuntu будет обрабатывать различные аппаратные средства. Он автоматически определяет его и настраивает при загрузке? Конечно, Windows не будет! и я еще не уверен, как обрабатывать точки монтирования: я не хочу, чтобы rsync мой TeraByte диск на раздел ОС; и GRUB выталкивает меня. Это маленькие забавные вещи, о которых я еще недостаточно знаю. – Peter.O 21 October 2010 в 01:40

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

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