Использование SED:
Вариант 1:
sed -e 's#,\([^ ]\)#|\1#g;s#"##g;s#|,#||#g' file
12584|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
25841|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
87455|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
\([^ ]\)
заменить все запятые, за которыми не следует пробел. "
и замените запятую перед префиксом |
. обычно в контексте запятая ставится с пробелом. Если не в вашем случае, попробуйте приведенный ниже код.
Вариант 2:
sed -e 's#^#\n#;:a;s#\n\([^,"]\|"[^"]*"\)#\1\n#;ta;s#\n,#|\n#;ta;s#\n##;s#"##g' file
12584|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
25841|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
87455|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
Я предполагаю, что /mnt/volume_nyc1_01
является точкой монтирования для нового тома ext4. В /etc/fstab
есть строка, в которой этот том смонтирован на /mnt/volume_nyc1_01
.
Шаги, которые вы упомянули, не являются технически неправильными, но если вы будете следовать им, вы получите пустой /home
каталог -, так как это новый ext4 fs, только lost+found
там будет.
В таких случаях я выполняю следующие шаги::
/home
. lsof |grep "/home"
может помочь вам в этом. /etc/fstab
без изменений и скопируйте все данные из /home
в /mnt/volume_nyc1_01
. sudo rsync -aHAXS /home/* /mnt/volume_nyc1_01
/home
и будет содержать все ваши данные. Если все запущено и работает, в какой-то момент в будущем вы можете размонтировать новый том из точки монтирования /home
и удалить файлы в каталоге /home
, которые все еще будут там, и освободить место на первом томе.. Будьте осторожны, /home
по-прежнему является каталогом на 1-м томе, который также используется в качестве точки монтирования для 2-го тома. Таким образом, удаление файлов из каталога /home
возможно без удаления файлов из 2-го тома, если вы сначала размонтируете 2-й том. Если все это кажется сложным, просто оставьте туда старые файлы.
Мой первый ответ на это :НЕ ДЕЛАЙТЕ. Если вы не знаете, что делаете, вы можете потерять свой (и любой другой )домашний каталог. Особенно способ, который вы упомянули выше.
Поскольку вы не упомянули приложение, с которым работаете, я просто дам несколько общих советов:
проверьте настройки приложения, чтобы узнать, можете ли вы направить его данные туда, куда оно хочет,затем вы можете смонтировать новый диск в любой новой точке монтирования, скопировать туда текущие данные приложения, а затем добавить строку в fstab, чтобы навсегда смонтировать туда диск:
find the app's current data storage dir, then
$mkdir <app mount point>
$mount </dev/sdX> <app mount point> (where </dev/sdX> is the new drive)
$cp -pr <current app data> <app mount point>
using your favorite text editor, add a new line to "/etc/fstab" that looks like this:
</dev/sdX> <app mount point> ext4 defaults 1 1
finally, change the app's data storage preference to <app mount point>
(проверьте man fstab
, чтобы увидеть формат и значение записей для этой строки)
При запуске приложения все должно выглядеть так же, как и раньше. Как я упоминал выше, не зная приложения, я не могу сказать вам, как изменить настройки -, если это вообще возможно. Проверьте страницы справки приложения для получения дополнительной информации, прежде чем сделать это.
Немного опаснее, вы можете смонтировать новый диск в качестве домашнего каталога:
using your favorite text editor, add a new line to "/etc/fstab" that looks like this:
</dev/sdX> <app mount point> ext4 defaults 1 1
Mount the drive /dev/sdX at some temporary point and copy your currrent home dir to the new mount point:
$mount </dev/sdX> /mnt
$cp -pr /home/you/* /mnt/.
reboot, and you should be able to login as before, and nothing else would have (should have?) changed.
Как я постоянно говорю, это опасно, если вы не знаете, что делаете.