Подскажите плиз, как сделать?

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Подскажите плиз, как сделать?

Непрочитанное сообщение risk94 » 2008-05-09 11:38:11

Есть к примеру запись в файле:

Код: Выделить всё

00:11:22:33:44:55   #  12.01.2008
Подскажите плиз, как сделать, так чтоб при совпадении даты текущей с датой что в конкретной строке в файле(строка файла принимала вид:

Код: Выделить всё

#00:11:22:33:44:55   #  12.01.2008
??
Последний раз редактировалось Alex Keda 2008-05-20 18:21:47, всего редактировалось 1 раз.
Причина: [code][/code] - для кого?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Подскажите плиз, как сделать?

Непрочитанное сообщение zg » 2008-05-09 12:28:22

Код: Выделить всё

test# sed -Ee '/^[^#].+09.05.2008$/s/.*/#&/' 1.txt
00:11:22:33:44:55 # 12.01.2008
#00:11:22:33:44:55 # 09.05.2008
#00:11:22:33:44:55 # 09.05.2008
test# cat 1.txt
00:11:22:33:44:55 # 12.01.2008
00:11:22:33:44:55 # 09.05.2008
#00:11:22:33:44:55 # 09.05.2008

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Re: Подскажите плиз, как сделать?

Непрочитанное сообщение risk94 » 2008-07-02 22:16:58

намутил, целую кучу изменений, - перестало работать
Строка стала иметь вид

Код: Выделить всё

00:18:8b:da:fc:db       172.16.0.12  100k    user@domain.local             02.07.2008
как быть теперь?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Подскажите плиз, как сделать?

Непрочитанное сообщение Alex Keda » 2008-07-02 22:18:24

раскуривать ман по awk
Убей их всех! Бог потом рассортирует...

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Re: Подскажите плиз, как сделать?

Непрочитанное сообщение risk94 » 2008-07-02 22:21:54

дык, середина ж лета, - не сезон! ;-)

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Подскажите плиз, как сделать?

Непрочитанное сообщение zingel » 2008-07-02 23:29:44

Код: Выделить всё

man regexp
Z301171463546 - можно пожертвовать мне денег

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Подскажите плиз, как сделать?

Непрочитанное сообщение zg » 2008-07-03 6:17:15

risk94 писал(а):дык, середина ж лета, - не сезон! ;-)
умение разбивать сложную задачу на много маленьких очень полезное умение. Но важно также знать каким будет конечный результат работы решений всех задач. Есть такой замечательный курс "Основы алгоритмизации", который частично идёт в школе в последних классах, в технарях и институтах на компьютерно ориентированных специальностях. Суть у него следующая - научиться разбивать сложную задачу на шаги, то есть на более дискретные величины - циклы, выводы, подпрограммы, функции и т.п., чтобы в конечном счёте получить требуемый результат.

Сейчас перед тобой стоит задача - обработать лог пользователей домена, в котором есть актуальные записи, а есть не актуальные. Выполняется она в два этапа:
1. Пометка неактуальных данных из лога (комментирование)
2. Обработка актуальных записей

У каждого этапа есть свои входящие и выходящие данные. Входящие данные для первого этапа - лог, в котором актуальность записей определяется датой, выходящие - лог, в котором неактуальные записи помечены символом комментария #. Во втором этапе входящим будет лог, у которого актуальность записи определяется символом коментария вначале строки и, возможно, датой, а результатом - отправка писем по ящикам актуальных записей.

Это всё называется описание задачи.

Сейчас у тебя два скрипта, выполняют свои задачи отдельно от общих к ним требований, поскольку изначально они не были описаны как части одной большой задачи, а стало быть об их совместимости речи не шло.

Вот пока ты для себя не опишешь требования и планируемые задачи, то общей цели не добьёшься.

В теме про отправку писем строки с начальным коментарием присутсвовали, но ничего про них сказано не было, но если коментарий влияет на что-то (а он должен, иначе бесмысленно), то скрипт придётся доделывать.

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Re: Подскажите плиз, как сделать?

Непрочитанное сообщение risk94 » 2008-07-03 9:37:06

zg писал(а):
risk94 писал(а):дык, середина ж лета, - не сезон! ;-)
умение разбивать сложную задачу на много маленьких очень полезное умение. Но важно также знать каким будет конечный результат работы решений всех задач. Есть такой замечательный курс "Основы алгоритмизации", который частично идёт в школе в последних классах, в технарях и институтах на компьютерно ориентированных специальностях. Суть у него следующая - научиться разбивать сложную задачу на шаги, то есть на более дискретные величины - циклы, выводы, подпрограммы, функции и т.п., чтобы в конечном счёте получить требуемый результат.

Сейчас перед тобой стоит задача - обработать лог пользователей домена, в котором есть актуальные записи, а есть не актуальные. Выполняется она в два этапа:
1. Пометка неактуальных данных из лога (комментирование)
2. Обработка актуальных записей

У каждого этапа есть свои входящие и выходящие данные. Входящие данные для первого этапа - лог, в котором актуальность записей определяется датой, выходящие - лог, в котором неактуальные записи помечены символом комментария #. Во втором этапе входящим будет лог, у которого актуальность записи определяется символом коментария вначале строки и, возможно, датой, а результатом - отправка писем по ящикам актуальных записей.

Это всё называется описание задачи.

Сейчас у тебя два скрипта, выполняют свои задачи отдельно от общих к ним требований, поскольку изначально они не были описаны как части одной большой задачи, а стало быть об их совместимости речи не шло.

Вот пока ты для себя не опишешь требования и планируемые задачи, то общей цели не добьёшься.

В теме про отправку писем строки с начальным коментарием присутсвовали, но ничего про них сказано не было, но если коментарий влияет на что-то (а он должен, иначе бесмысленно), то скрипт придётся доделывать.
полность согласен. Просто изначально задачи с мылом небыло. Так сказать скилет начал обростать мясом. Вот и пояились доп. идеи и трудности соответственно.

Ну, и подраскурившиcь awk, вроде каг слегка и получилось! :)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Подскажите плиз, как сделать?

Непрочитанное сообщение zg » 2008-07-03 11:46:09

risk94 писал(а):Ну, и подраскурившиcь awk, вроде каг слегка и получилось! :)
:smile: гуд