Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 17
1

Разбиение текста на абзацы sed

08.05.2020, 18:35. Показов 3516. Ответов 6

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите , пожалуйста, решить задачку на команду sed
Дан текст, разделить его на 5 абзацев по 3 предложения, а в 6 абзац записать все остальное
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2020, 18:35
Ответы с готовыми решениями:

Разбиение текста на абзацы по меткам
Вводится произвольный текст из неизвестного количества предложений. Разделить текст на строки и...

Разбиение текста на абзацы, предложения и слова
привет всем, нужно разбить текст с файла на абзаци и записать абзаци в List, потом с этого List...

Разделение текста на абзацы
Всем здравствуйте. Подскажите, пожалуйста. У меня есть текст, мне нужно разделить его на абзацы....

Вставка текста в файл sed
Добрый день. Имеется файл, в него нужно вставить /mnt/test/farch/ в начала каждой строки. Есть...

6
Эксперт NIX
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
08.05.2020, 19:19 2
Bash
1
sed -zr 's/([^.!?]+[.!?]+\s*){3}/&\n/5'
0
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 17
08.05.2020, 20:29  [ТС] 3
Marinero, У меня получается, что только абзац разделяется для 6-го а остальные не изменяются.
Пример: Первое.Второе.Третье.Четвертое.Пятое.Шестое.7-ое.8-ое.9-ое.10-ое.11-ое.12-ое.13-ое.14-ое.15-ое.16.ое.17-ое.18-ое.19-ое.20-ое.
Ответ:
Первое.Второе.Третье.
Четвертое.Пятое.Шестое.
7-ое и тд а начиная с 16-ое абзац где все остальное, а у меня только последний абзац после 16-ое формируется
0
Эксперт NIX
3330 / 748 / 252
Регистрация: 28.06.2015
Сообщений: 1,543
Записей в блоге: 16
08.05.2020, 21:14 4
Лучший ответ Сообщение было отмечено Gvas123 как решение

Решение

Bash
1
sed -zr 's/([^.!?]+[.!?]+\s*){3}/&\r\n\n /g; s/\r\n\n //6g; s/\s*\r//g' file
Добавлено через 12 минут
Bash
1
sed -zr 's/([^.!?]+[.!?]+\s*){3}/&\r\n/g; s/\r\n//6g; s/\s*\r/\n/g' file
Я всегда думала что абзацы должны разделяться пустой строкой и начинаться с красной
2
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 17
08.05.2020, 21:19  [ТС] 5
nezabudka, Верно, спасибо А вы не могли вы объяснить как это работает?
0
Эксперт NIX
3330 / 748 / 252
Регистрация: 28.06.2015
Сообщений: 1,543
Записей в блоге: 16
08.05.2020, 21:28 6
Gvas123, Через каждые три предложения вставляем якорь \r с переводом строки
Начиная с шестого и до конца удаляем якорь и первод строки, потом удаляем и якорь
и возможно предшествующий пробел в первых 5 случаях
0
Эксперт NIX
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
08.05.2020, 21:42 7
Да. Придется считать
Bash
1
sed -r 'x;/\n{5}/{x;q};s/^/\n/;x;s/([^.!?\n]+[.!?.]+[[:blank:]]*){3}/&\n/;P;D'
Добавлено через 7 минут
Цитата Сообщение от nezabudka Посмотреть сообщение
вставляем якорь \r с переводом строки
Цитата Сообщение от nezabudka Посмотреть сообщение
удаляем якорь и первод строки
Перевод строки зачем? Постаивли якоря, убрали лишние, поменяли якорь на перевод строки
1
08.05.2020, 21:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2020, 21:42
Помогаю со студенческими работами здесь

SED удаление текста в строке
Получаю скриптом через USSD запрос данные: Deystvitelen do 26.02.17. 490 bonusov na schetu. в...

Разбивка текста на абзацы по 200 символов
Есть текст: text = 'Lorem Ipsum is simply dummy text of the printing and typesetting industry....

Найти все абзацы текста, в которых нет определённого слова
Привет всем! Хочу написать регулярное выражение которое находит все абзацы в которых НЕТ...

Макрос: убрать разделение текста на абзацы (все содержимое файла слить в один абзац)
Нужно Написать макрос, который переписывает произвольный текст Word в другой документ...

Разбиение текста
Народ есть текст к примеру вот такого вида: 2 0 10 22 11 11 23 45 55 22 цифры могут быть...

Разбиение текста
Здравствуйте, подскажите как разбить csv файл на 2 файла, разбиение происходит так - если находим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru