Страница 1 из 1

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

Добавлено: 2008-05-09 11:38:11
risk94
Есть к примеру запись в файле:

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

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

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

#00:11:22:33:44:55   #  12.01.2008
??

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

Добавлено: 2008-05-09 12:28:22
zg

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

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

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

Добавлено: 2008-07-02 22:16:58
risk94
намутил, целую кучу изменений, - перестало работать
Строка стала иметь вид

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

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

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

Добавлено: 2008-07-02 22:18:24
Alex Keda
раскуривать ман по awk

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

Добавлено: 2008-07-02 22:21:54
risk94
дык, середина ж лета, - не сезон! ;-)

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

Добавлено: 2008-07-02 23:29:44
zingel

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

man regexp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 2008-07-03 11:46:09
zg
risk94 писал(а):Ну, и подраскурившиcь awk, вроде каг слегка и получилось! :)
:smile: гуд