Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Простенькая программа на bash для изучения английских слов  (Прочитано 797 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DiTsi

  • Автор темы
  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Пишу простой скрипт для вывода через notify-send английских слов с переводом. Слова беру из словаря Мюллера.
Он имеет примерно такой вид:
(Нажмите, чтобы показать/скрыть)

А задача стоит такая: нужно объединить строки из этого файла начинающиеся с трех пробелов в одну до следующей строки начинающейся с трех пробелов, в общем, чтоб было вот так:

(Нажмите, чтобы показать/скрыть)

Полагаю, что это возможно сделать с помощью sed или tr, но не знаю как...
То есть нужно заменить "\n" на " " (это можно сделать так: tr '\n' ' '), но при этом, чтобы строки "\n   " на " " не менялись...

Подскажите пожалуйста!

Спасибо =)

andrey_p

  • Гость
Для форматирования только одной группы достаточно
sed -r ':a /^   / N; s/\n([^ ]{3})/ \1/; ta'
Если групп несколько, то потребуется чуть более сложная обработка (и они должны быть отделены друг от друга - пустой строки достаточно).

И когда даете примеры ввода - давайте их разнообразнее, потому что для тестирования мне пришлось самостоятельно вводить подгруппы с одной и тремя строками.

 

Страница сгенерирована за 0.015 секунд. Запросов: 21.