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


Автор Тема: Как записывать каждое слово на новой строке?  (Прочитано 646 раз)

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

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Здравствуйте.
Подскажите, есть txt, в него иногда записываются слова. Одно, три, десять, по разному.
Нужно чтоб каждое записывалось на новой строке.
типа такого
большая
синяя
собака

Иногда случается такое
большаясиняясобака хз почему
Прочел про возврат каретки/перевод на новую строку, но что-то не получается осуществить.
Как писать каждое слово на новой строке?

слова добавляются так
cat qq.txt >> file.txt

Спасибо.

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4708
  • Capture the truth
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #1 : 07 Октябрь 2020, 01:08:26 »
cat qq.txt
в терминал правильно выводит?
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #2 : 07 Октябрь 2020, 01:26:16 »
ALiEN175,
видимо нет, сейчас только одно слово, выводится так

cat qq.txt
синяяroot@ubuntu:~

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4708
  • Capture the truth
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #3 : 07 Октябрь 2020, 01:28:58 »
cat qq.txt | tr -d '\r' | iconv -t UTF8 А так?
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #4 : 07 Октябрь 2020, 09:30:18 »
ALiEN175, без изменения. Всё слитно.

большойroot@ubuntu:~

Оффлайн Smorman

  • Участник
  • *
  • Сообщений: 197
  • When In Rome, Do As The Romans Do...
    • Просмотр профиля
    • Диспетчерская служба - FinnWay
Re: Как записывать каждое слово на новой строке?
« Ответ #5 : 07 Октябрь 2020, 10:07:47 »
Если от Пользователя, то:
echo -e 'твоё_слово_или_твой_текст' >> file.txt
Если от Суперпользователя, то:
sudo sh -c "echo 'твоё_слово_или_твой_текст' >> file.txt"
« Последнее редактирование: 07 Октябрь 2020, 10:09:58 от Smorman »
OS: Ubuntu 18.04.2 LTS Bionic Beaver + Unity (x86_64), Archlinux+Openbox, Android 7.1 (x86_64), W10 (x86_64)
PC: Lenovo H530, CPU: i5-4430 3.0, Video: nVidia PCI-X
SSHD: 1T, HDD: 500G, RAM: 6G, ODD

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #6 : 07 Октябрь 2020, 10:32:07 »
Smorman, текст в другом файле находится. Он переносится не на каждую строку по слову, а так --> всеслитноводнустроку.

Оффлайн jurganov

  • Активист
  • *
  • Сообщений: 448
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #7 : 07 Октябрь 2020, 12:37:59 »
покажи другой файл, я думаю, что проблемы в нем

Оффлайн Smorman

  • Участник
  • *
  • Сообщений: 197
  • When In Rome, Do As The Romans Do...
    • Просмотр профиля
    • Диспетчерская служба - FinnWay
Re: Как записывать каждое слово на новой строке?
« Ответ #8 : 07 Октябрь 2020, 12:38:49 »
Smorman, текст в другом файле находится. Он переносится не на каждую строку по слову, а так --> всеслитноводнустроку.

Надо было правильно сформулировать тогда, а то про другой файл ни слова.
Догадайся сам получается...  :)

Пользователь добавил сообщение 07 Октябрь 2020, 12:49:37:
Он переносится не на каждую строку по слову

А каким образом пишется текст в qq.txt?
cat qq.txt всего лишь выводит его содержимое, а каким образом попадают/пишутся туда слова?
« Последнее редактирование: 07 Октябрь 2020, 12:49:37 от Smorman »
OS: Ubuntu 18.04.2 LTS Bionic Beaver + Unity (x86_64), Archlinux+Openbox, Android 7.1 (x86_64), W10 (x86_64)
PC: Lenovo H530, CPU: i5-4430 3.0, Video: nVidia PCI-X
SSHD: 1T, HDD: 500G, RAM: 6G, ODD

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4708
  • Capture the truth
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #9 : 07 Октябрь 2020, 13:54:14 »
Ввысь, выложите файл qq.txt отдельно
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 430
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #10 : 08 Октябрь 2020, 13:15:55 »
слова добавляются так
cat qq.txt >> file.txt
В qq.txt нет символа новой строки. Надо смотреть как он формируется, обычные текстовые редакторы его ставят.
Но если лень, то всегда можно сделать
cat qq.txt | grep ".*" >> file.txt
Тупо, но сработает  ;D
« Последнее редактирование: 08 Октябрь 2020, 13:20:29 от altwazar »

Оффлайн Smorman

  • Участник
  • *
  • Сообщений: 197
  • When In Rome, Do As The Romans Do...
    • Просмотр профиля
    • Диспетчерская служба - FinnWay
Re: Как записывать каждое слово на новой строке?
« Ответ #11 : 08 Октябрь 2020, 21:46:57 »
cat qq.txt >> file.txt

Я вот думаю, а в чём цинус файл.txt переводить в файл.txt с переносом строки, если сразу сделать запись слов/текста с переводом строки в первый файл.txt?! :)
OS: Ubuntu 18.04.2 LTS Bionic Beaver + Unity (x86_64), Archlinux+Openbox, Android 7.1 (x86_64), W10 (x86_64)
PC: Lenovo H530, CPU: i5-4430 3.0, Video: nVidia PCI-X
SSHD: 1T, HDD: 500G, RAM: 6G, ODD

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #12 : 08 Октябрь 2020, 23:16:29 »
ALiEN175, файл http://https://cloud.mail.ru/public/3S69/4BLokCdAF
altwazar, воспользуюсь советом, мне на правильность как-то все равно, главное чтоб чтоб работало)
Smorman, ну qq это как бы временный, он стирается, а второй он уже постоянный. Как обычно говорят в таких случаях - Не я делал, работаем с тем что уже есть.

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4708
  • Capture the truth
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #13 : 08 Октябрь 2020, 23:22:18 »
Ввысь, нет переноса строки. Так что да - смотрите, как записываете.

Рабочие варианты:
echo 'Word' >> qq.txt
printf '%s\n' 'Word' >> qq.txt

Пользователь добавил сообщение 08 Октябрь 2020, 23:26:02:
слова добавляются так
cat qq.txt >> file.txt

Изначально проблема в qq.txt - рассказывайте, как туда попадают строчки.
(если переноса строк нет в qq.txt, то и в file.txt они не появятся)
« Последнее редактирование: 08 Октябрь 2020, 23:31:28 от ALiEN175 »
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #14 : 09 Октябрь 2020, 00:59:19 »
ALiEN175, в скрипте создающем файл есть вот такое

file_put_contents($this->pathIpBannedList . ".new", implode("\n", $res));

вроде как \n отвечает за перенос строки. Или я не прав?


 

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