> file2 ничего не пишет в файл2, если в файл1 приходит однёрка Почему и как это исправить?" /> > file2 ничего не пишет в файл2, если в файл1 приходит однёрка Почему и как это исправить?" /> Неожиданное поведение простой вещи - Ubuntu.ru

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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Неожиданное поведение простой вещи  (Прочитано 980 раз)

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

Оффлайн hesoyamatogun

  • Автор темы
  • Активист
  • *
  • Сообщений: 347
    • Просмотр профиля
Здрастиё
Вот конструкция tail -f file1 >> file2 пишет в файл2 всё что приходит в файл1
Эта tail -f | grep "1" пропускает и пишет в stdout только если в файл1 приходит строка содержащая 1
А эта tail -f file1 | grep "1" >> file2 ничего не пишет в файл2, если в файл1 приходит однёрка
Почему и как это исправить?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #1 : 28 Августа 2018, 06:24:03 »
УМВР
Ищите проблему в себе.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #2 : 28 Августа 2018, 07:01:52 »
cat file1 | grep "1" | tail -f >> file2

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #3 : 28 Августа 2018, 07:06:31 »
ecc83, а смысл?…
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн hesoyamatogun

  • Автор темы
  • Активист
  • *
  • Сообщений: 347
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #4 : 28 Августа 2018, 07:15:40 »
УМВР
Ищите проблему в себе.
Ты даже не проверял!
(Нажмите, чтобы показать/скрыть)
Пробовал на 2х компах, шелл дать?

ecc83 Так она выполнится и выйдет, мне надо чтоб продолжало выполнятся.

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #5 : 28 Августа 2018, 07:17:07 »
cat file1 | grep "1" >> file2

ecc83, а смысл?…

То есть вы хотите спросить, зачем автору создавать файл, в котором будут строки содержащие только цифру "1" ?

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

Пользователь добавил сообщение 28 Августа 2018, 07:21:53:
ecc83 Так она выполнится и выйдет, мне надо чтоб продолжало выполнятся.

Что значит "продолжало"?

Файл "file1" прочитан, результат перенаправлен в "file2", что ещё делать?
« Последнее редактирование: 28 Августа 2018, 07:21:53 от ecc83 »

Оффлайн hesoyamatogun

  • Автор темы
  • Активист
  • *
  • Сообщений: 347
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #6 : 28 Августа 2018, 07:22:48 »
Да нет, мне не это надо, другое, основанное на подобной конструкции.
tail -f  /var/log/auth.log | fgrep "Accepted keyboard-interactive/pam for" >> /var/log/success

Файл "file1" прочитан, результат перенаправлен в "file2", что ещё делать?
Продолжать выполнять программа tail. В случае поступления новых данных в file1 фильтровать их. Фильтрует но не дописывает!

Вот конкретно как во второй строке это поста работает только без перенаправления. с перенаправлением не работает! так же не работает если будет больше одного пайпа. Я же спросил "почему" не работает а не то как вы видите это решение. Будет надо спрошу и это.
« Последнее редактирование: 28 Августа 2018, 07:44:25 от hesoyamatogun »

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #7 : 28 Августа 2018, 08:00:56 »
не то как вы видите это решение. Будет надо спрошу и это.

Понял. Извините за беспокойство.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #8 : 28 Августа 2018, 08:18:35 »
tail -n 1 -f file1 | xargs -I {} bash -c 'echo "{}" | grep "1" >> file2'
Wars ~.o

Оффлайн hesoyamatogun

  • Автор темы
  • Активист
  • *
  • Сообщений: 347
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #9 : 28 Августа 2018, 08:40:36 »
не то как вы видите это решение. Будет надо спрошу и это.

Понял. Извините за беспокойство.
Извинения приняты.

victor00000
Так работает :) Побольше б таких людей

Все же мог бы кто объяснить, где затык по первому случаю, который кажется обычному человеку вполне нормальным?
AnrDaemon прокладку между рулем и сиденьем не предлагать.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #10 : 28 Августа 2018, 08:56:15 »
То есть вы хотите спросить, зачем автору
Нет, я хочу понять, зачем ты tail -f поставил в конец.

Пользователь добавил сообщение 28 Августа 2018, 08:57:43:
Да нет, мне не это надо, другое, основанное на подобной конструкции.
tail -f  /var/log/auth.log | fgrep "Accepted keyboard-interactive/pam for" >> /var/log/success
Не проще написать фильтр для rsyslog вместо такого извращения?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн hesoyamatogun

  • Автор темы
  • Активист
  • *
  • Сообщений: 347
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #11 : 28 Августа 2018, 09:56:55 »
Может и проще. Так и поступил бы в конечном итоге, но оно понадобился здесь и сейчас и оно не сработало вот и возник вопрос почему. Да и много может быть причин, выпросить права на чтение auth.log намного легче чем на изменение syslog.conf, до первой перезагрузки если нужно это, да и случай частный в конце концов и пример я вначале приводил с file1 и file2 и работоспособность оказалась не очевидной и не одному мне.

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #12 : 28 Августа 2018, 19:31:40 »
Нет, я хочу понять, зачем ты tail -f поставил в конец.

Я не "поставил", а просто не удалил по невнимательности, когда редактировал строку автора.
В следующем своём сообщении исправил.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6754
  • 20% Cooler
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #13 : 28 Августа 2018, 20:17:38 »
tail -f file1 | stdbuf -o 0 grep "1" >> file2
🖥 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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Неожиданное поведение простой вещи
« Ответ #14 : 29 Августа 2018, 03:58:55 »
и оно не сработало
Всё замечательно работает. А то, что вывод буферизуется… это уже, извините, оптимизации ОС.
Если хотите без буфера, перенаправьте в ещё один пайп.
P.S.
И никто не обещал, что исходный файл пишется немедленно.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

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