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


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

Автор Тема: Как объединить строки  (Прочитано 546 раз)

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

Оффлайн mintol

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
  • не судите строго, я вообще лингвист :)
    • Просмотр профиля
Как объединить строки
« : 23 Сентябрь 2016, 20:31:31 »
Здравствуйте, задали почистить словарь, но я немного туплю.
Мне даны строки на английском и испанском языках, а мне нужно их объединить в одну. Пробую разные команды и комбинации, ни как не получается, файл лишь начинает подвисать.
Вот дано так:
дом
la casa
семья
la familia
и так далее.
Как мне сделать чтобы две соседние строки были в одну строку?
К примеру:
дом la casa
семья la familia

Буду очень признательна за помощь. Пробовала tr -d \n (не подходит, ничего не происходит, лишь файл портиться).

Оффлайн easy2002

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2786
  • Мурманск
    • Просмотр профиля
Re: Как объединить строки
« Ответ #1 : 23 Сентябрь 2016, 20:37:39 »
mintol,
sed 'N;s/\n/ /' /путь/к/файлу
Tempora mutantur et nos mutantur in illis

Оффлайн mintol

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
  • не судите строго, я вообще лингвист :)
    • Просмотр профиля
Re: Как объединить строки
« Ответ #2 : 23 Сентябрь 2016, 20:43:09 »
mintol,
sed 'N;s/\n/ /' /путь/к/файлу
Пишет: whiterabbit@whiterabbit-:~$ sed 'N;s/\n/ /'opo.txt
sed: -e выражение #1, символ 10: неизвестный модификатор к `s'

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 1967
    • Просмотр профиля
Re: Как объединить строки
« Ответ #3 : 23 Сентябрь 2016, 20:47:56 »
mintol,
пробел нужно ставить перед именем файла:
sed 'N;s/\n/ /' opo.txtрезультат в новый файл:
sed 'N;s/\n/ /' opo.txt > opo_new.txt

Оффлайн mintol

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
  • не судите строго, я вообще лингвист :)
    • Просмотр профиля
Re: Как объединить строки
« Ответ #4 : 23 Сентябрь 2016, 21:10:56 »
Пробел поставила, вроде файл обрабатывает, но когда вывожу результаты, получаю тоже самое что и на входе. То есть строки он попарно не объединяет.

Punko

  • Гость
Re: Как объединить строки
« Ответ #5 : 23 Сентябрь 2016, 21:34:17 »
mintol, смотрели в новом файле?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 1967
    • Просмотр профиля
Re: Как объединить строки
« Ответ #6 : 23 Сентябрь 2016, 22:12:56 »
mintol,
Возможно в файле виндовый перевод строк - \r\n (CR LF)
исправить можно так:
sed -i -z 's/\r//g' opo.txtили
cat opo.txt | tr -d '\r' | sed 'N;s/\n/ /' > opo_new.txt

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Как объединить строки
« Ответ #7 : 24 Сентябрь 2016, 00:02:24 »
Для «общего развития»sed -z 's/\n\([^\n]*\n\)/ \1/g'
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2200
  • X-9000SC
    • Просмотр профиля
Re: Как объединить строки
« Ответ #8 : 24 Сентябрь 2016, 00:12:41 »
еще один бэкслеш нужен
tr -d \\n
Благодарности на Yandex 41001488642430. Cпасибо.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 1967
    • Просмотр профиля
Re: Как объединить строки
« Ответ #9 : 24 Сентябрь 2016, 03:12:25 »
ALiEN175,
Если окавычено апострофами то не нужен.

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2200
  • X-9000SC
    • Просмотр профиля
Re: Как объединить строки
« Ответ #10 : 24 Сентябрь 2016, 03:20:26 »
renzrv, в приведенном ТС примере апострофов нет
Благодарности на Yandex 41001488642430. Cпасибо.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 1967
    • Просмотр профиля
Re: Как объединить строки
« Ответ #11 : 24 Сентябрь 2016, 03:26:03 »
ALiEN175, Так там все неправильно, а не только \n

Оффлайн mintol

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
  • не судите строго, я вообще лингвист :)
    • Просмотр профиля
Re: Как объединить строки
« Ответ #12 : 24 Сентябрь 2016, 10:07:38 »
mintol, смотрели в новом файле?
Да, конечно. Такое впечатление, как будто он просто копирует один и тот же файл, только под другим названием.

Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 645
  • Никогда так нЕ было, чтобы никак не бЫло
    • Просмотр профиля
    • Пиявкин
Re: Как объединить строки
« Ответ #13 : 24 Сентябрь 2016, 11:44:10 »
cat файл | sed '$!N;s/\n/ /g'
18.04 Minimal, awesomeWM/иксы без WM, luakit, vim/gvim, mpv/smplayer, jack+wineasio

 

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