Страница 1 из 1
помогите с выборкой
Добавлено: 2007-06-21 6:12:09
maniac
Народ уже несколько дней парюсь, курю маны, а чтот все равно не получается. Значит что нужно, есть список вида:
port SrcIP port dstIP oktets packet
2345 192.168.0.1 80 216.15.40.30 200034 3
xxx xx.xx.xx.xx xxx xx.xx.xx.xx xxxxxx xxx
xxx xx.xx.xx.xx xxx xx.xx.xx.xx xxxxxx xxxx
ну и так далее. Все это находиться в файлике просто. Что нужно сделать, например выбрать все строки в которых есть ip address 192.168.0.1 по второму столбцу, выбрать все строки в которых есть ip address но по четвертому столбцу. Понятно что это делается с помощью grep, но как до меня что не доходит. HELP!!!
Добавлено: 2007-06-21 7:44:29
Happy_demon
base# awk '{print $2}' test.awk | grep "192.168.25.2"
или
base# cat test.awk | cut -d " " -f 2 | grep "192.168.25.2"
Добавлено: 2007-06-21 9:42:49
maniac
нужно выбирать именно строки полностью но чтобы сортировка шла по 2 столбцу, так не работает
Добавлено: 2007-06-21 10:17:56
schizoid
приведи дец больше строк, а то выдумывать ломает.
Добавлено: 2007-06-21 11:04:42
maniac
вот такой вот список содержит 7 столбцов
Код: Выделить всё
srcIP dstIP prot srcPort dstPort octets packets
xx.xx.xx.xx xx.xx.xx.xx 6 1146 443 1280 12
xx.xx.xx.xx xx.xx.xx.xx 6 443 1146 13117 15
xx.xx.xx.xx xx.xx.xx.xx 6 80 1936 40 1
xx.xx.xx.xx xx.xx.xx.xx 6 44135 1521 8221 37
xx.xx.xx.xx xx.xx.xx.xx 6 1521 44135 16511 37
xx.xx.xx.xx xx.xx.xx.xx 6 44136 1521 7939 32
xx.xx.xx.xx xx.xx.xx.xx 6 1521 44136 3701 29
xx.xx.xx.xx xx.xx.xx.xx 6 1247 80 925 5
xx.xx.xx.xx xx.xx.xx.xx 6 80 1247 760 4
xx.xx.xx.xx xx.xx.xx.xx 6 2539 80 421 6
xx.xx.xx.xx xx.xx.xx.xx 6 80 2301 208 5
xx.xx.xx.xx xx.xx.xx.xx 17 53 53 293 2
Добавлено: 2007-06-21 11:36:02
schizoid
я вообще-то с ИПшниками хотел...
лана...
выбрать все строки в которых есть ip address 192.168.0.1 по второму столбцу
т.е. этот ип может находиться и в другом столбце?
Добавлено: 2007-06-21 14:40:10
Happy_demon
если то, то это есть даже здесь, на сайте
Добавлено: 2007-06-21 15:12:52
dikens3
У меня веселее, нужно было вывести 1,2,3 поля + последним поле, в котором содержалось(не равно этому значению) искомое значение. Вывод только в том случае положительного результата. (В моём случае это был поиск from.)
Код: Выделить всё
awk '{ for (i=NF;i>0;--i) {{a=$i} if ( a~"from=" ) {print $1,$2,$3,a}}}'