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


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

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

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

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

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

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

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

Спасибо.

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5451
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #1 : 07 Октября 2020, 01:08:26 »
cat qq.txt
в терминал правильно выводит?
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

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

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

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

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5451
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #3 : 07 Октября 2020, 01:28:58 »
cat qq.txt | tr -d '\r' | iconv -t UTF8 А так?
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

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

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

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

Оффлайн Smorman

  • Участник
  • *
  • Сообщений: 213
  • 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 22.04 'Jammy Jellyfish' LTS + 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: 16G, ODD

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

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

Оффлайн jurganov

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

Оффлайн Smorman

  • Участник
  • *
  • Сообщений: 213
  • 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 22.04 'Jammy Jellyfish' LTS + 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: 16G, ODD

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5451
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Re: Как записывать каждое слово на новой строке?
« Ответ #9 : 07 Октября 2020, 13:54:14 »
Ввысь, выложите файл qq.txt отдельно
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: 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

  • Участник
  • *
  • Сообщений: 213
  • 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 22.04 'Jammy Jellyfish' LTS + 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: 16G, ODD

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

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

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5451
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
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 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

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

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

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

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


 

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