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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

Оффлайн mintol

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

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

ТС не появлялся на Форуме более полугода по состоянию на 14/07/2019 (последняя явка: 28/11/2018). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 14 Июля 2019, 01:58:10 от zg_nico »

Оффлайн 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

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
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

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
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

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

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6733
  • 20% Cooler
    • Просмотр профиля
Re: Как объединить строки
« Ответ #8 : 24 Сентября 2016, 00:12:41 »
еще один бэкслеш нужен
tr -d \\n
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн ReNzRv

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

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6733
  • 20% Cooler
    • Просмотр профиля
Re: Как объединить строки
« Ответ #10 : 24 Сентября 2016, 03:20:26 »
renzrv, в приведенном ТС примере апострофов нет
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн ReNzRv

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

Оффлайн mintol

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

Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 743
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
Re: Как объединить строки
« Ответ #13 : 24 Сентября 2016, 11:44:10 »
cat файл | sed '$!N;s/\n/ /g'
крайний LTS Netboot, awesomeWM, urxvtd, firefox, vim/gvim, mpv/smplayer, linux-lowlatency, jack, guitarix, lmms, ardour, mednafen, dsda-doom

 

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