user1 09:57:44 user1 10:28:09 user1 12:45:10 user2 10:38:31 user3 10:12:28 user4 10:08:51 user4 10:55:07 user5 10:25:42 user5 11:56:25 user5 12:20:24Отсюда надо удалить строки, начинающиеся на "user2" и "user3".
Не долго думая, решил подкрепить свои знания по awk...
И получился такой вот велик:
cat my.log | awk 'BEGIN {prev1=""; prev2=""; prev_check=0} { if ($1==prev1) { if (prev_check==1) { print $0 } else { print prev2"\n"$0 }; prev_check=1 } else { prev_check=0 }; prev1=$1; prev2=$0 }' | column -t
С разбивкой по строкам, для удобства восприятия:
awk 'BEGIN {prev1=""; prev2=""; prev_check=1} { if ($1==prev1) { if (prev_check==0) { print $0 } else { print prev2"\n"$0 }; prev_check=0 } else { prev_check=1 }; prev1=$1; prev2=$0 }'
Заметку писал для себя, дабы не забыть.
Я знаю, что можно сделать более изящно... Но на первых шагах у меня такой велик вышел. Главное, работает как надо.
Информация с сайта http://blog.angel2s2.ru/.
0 коммент.:
Отправить комментарий