Посоветовали:
%s/\(.\{3500\}\)\(.*\)/\1\.\2/
Раньше справлялся - сейчас видимо нет. После команды, обрабатывавшей 1.5 мб файл, спустя некоторое время обработка закончилась (всё подсветило красным) и я начал искать /. (файл в кирилице)
Ничего не нашло.
(Для чего это мне надо - не пишу, вы не поймёте из-за отсутсвия определённого опыта и оттого что люди разные с разными точками зрения)
Но вопрос важен. Растолкуйте, может быть, кроме Vim есть ещё какие-то способы?
Точки убраны из документа, осталось всего лишь их расставить (пусть это будет через 3500).
да, Gentoo x64 (если обяз. инфа по конфе хоть чем-то поможет).
[Solved] Поставить точки через каждые N символов (:%s/\_.\{3500}/&./g - решение)
Модератор: /dev/random
-
- Сообщения: 23
- ОС: Gentoo x86_64
-
- Модератор
- Сообщения: 20971
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [Solved] Поставить точки через каждые N символов
А что, в этом файле нет разрывов строки?
Эта команда должна поствить точку после 3500 символов в каждой строке. Если строк такой длины нет, точек и не будет.
Эта команда должна поствить точку после 3500 символов в каждой строке. Если строк такой длины нет, точек и не будет.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 23
- ОС: Gentoo x86_64
Re: [Solved] Поставить точки через каждые N символов
Будьте готовы к этому, что файл может быть сплошным и произвольным. Ни одного разрыва.
Поэтому я и ищу общее решение.
Имеется одна строка длиной 1.5 мб. в другом файле 5мб ... и тд
это очень мало по сравнению с гигабайтами. кстати обрабатывает секунды проходят на ssd винте и проце ниче так ...
Поэтому я и ищу общее решение.
Имеется одна строка длиной 1.5 мб. в другом файле 5мб ... и тд
это очень мало по сравнению с гигабайтами. кстати обрабатывает секунды проходят на ssd винте и проце ниче так ...
-
- Модератор
- Сообщения: 20971
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [Solved] Поставить точки через каждые N символов
Странно, тогда одна точка должна бы быть. Но только одна, а не через каждые 3500 символов.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 23
- ОС: Gentoo x86_64
Re: [Solved] Поставить точки через каждые N символов
На вопрос "How to insert a dot into a file every after every n-th character? (every 3500 char)"
Из знающих (канал ubuntu) мне отвечают так:
if you're using vim, record a macro. q[register]i.[esc][number of lines down]jq. then just hit [number of repetitions]@@ to do it
Очень странно, я новичок в vim и я многого не понимаю, но мне нужен решение этого вопроса, один раз его получалось решить и я форматировал то, что мне надо.
Но настал тот час, когда нужно большее понимание, как поддержать это знание решённой задачи, чтобы постоянно использовать этот скрипт.
Ну или макрос (правда я там ничего не понял).
Из знающих (канал ubuntu) мне отвечают так:
if you're using vim, record a macro. q[register]i.[esc][number of lines down]jq. then just hit [number of repetitions]@@ to do it
Очень странно, я новичок в vim и я многого не понимаю, но мне нужен решение этого вопроса, один раз его получалось решить и я форматировал то, что мне надо.
Но настал тот час, когда нужно большее понимание, как поддержать это знание решённой задачи, чтобы постоянно использовать этот скрипт.
Ну или макрос (правда я там ничего не понял).
-
- Модератор
- Сообщения: 20971
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [Solved] Поставить точки через каждые N символов
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
-
- Сообщения: 23
- ОС: Gentoo x86_64
Re: [Solved] Поставить точки через каждые N символов
На канале Vim висит 951 человек там мне ответили относительно быстро (хоть и тишина какая-то).
Вам тоже спасибо.
23:49 < accolade> xsi, :%s/\_.\{3500}\zs/./g
23:50 < accolade> or equivalently :%s/\_.\{3500}/&./g
23:51 < accolade> (but the first version will mark the positions)
Вам тоже спасибо.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: [Solved] Поставить точки через каждые N символов
man sed
вот только не очень понятно: разбит-ли файл на строки? Хотя в любом случае, его придётся ВЕСЬ в память кидать, а потом вставлять точки.
$
$ echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |\
sed -r 's/.{7}/&./g'
aaaaaaa.aaaaaaa.aaaaaaa.aaaaaaa.aaaaaaa.aaaaaaa.aaaaaaa.aaaaaaa.aaaaaaa.aaaaaa
$ echo "1
2
3
4
5" |sed -n 'H;$!b;g;s/\n//gp'
12345
tl;dr смотрите по ссылке в подписи. Мне вторую книжку писать лениво.
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
- Сообщения: 23
- ОС: Gentoo x86_64
Re: [Solved] Поставить точки через каждые N символов
IRC ,
на каждом канале нормальном около тысячи человек
только убунту под 2000 (впрочем там очень специфичный канал - далеко не все вопросы можно)
на каждом канале нормальном около тысячи человек
только убунту под 2000 (впрочем там очень специфичный канал - далеко не все вопросы можно)