Нужно в скрипте считать данные из файла типа:
tcpdump | /filter < file
>Нужно в скрипте считать данные из файла типа:
>tcpdump | /filter < file
a pri4em tut awk ?
>a pri4em tut awk ?
filter - это скрипт написанный на awk.
Вопчим, этот вопрос отпал. Появился другой: есть строка
10:49:51.438168 IP 192.168.161.15.1028 > 192.168.161.1.2222: . ack 1196 win 64339
как в скрипте вытянуть адрес 192.168.161.15?
Если разделитеь пробел - то получаем 192.168.161.15.1028.
Если "." то - 438168 IP 192
>>a pri4em tut awk ?
>filter - это скрипт написанный на awk.
>Вопчим, этот вопрос отпал. Появился другой: есть строка
>10:49:51.438168 IP 192.168.161.15.1028 > 192.168.161.1.2222: . ack 1196 win 64339
>как в скрипте вытянуть адрес 192.168.161.15?
>Если разделитеь пробел - то получаем 192.168.161.15.1028.
>Если "." то - 438168 IP 192Используйте конвейер:
$ echo "10:49:51.438168 IP 192.168.161.15.1028 > 192.168.161.1.2222: . ack 1196 win 64339" | awk '{print $3}' | awk -F. '{print $1 "." $2 "." $3 "." $4}'
192.168.161.15
>Используйте конвейер:
>
>$ echo "10:49:51.438168 IP 192.168.161.15.1028 > 192.168.161.1.2222: . ack 1196 win 64339" | awk '{print $3}' | awk -F. '{print $1 "." $2 "." $3 "." $4}'
Это все понятно, а как это в скрипте реализовать?
#!/usr/bin/awk
>
>>Используйте конвейер:
>>
>>$ echo "10:49:51.438168 IP 192.168.161.15.1028 > 192.168.161.1.2222: . ack 1196 win 64339" | awk '{print $3}' | awk -F. '{print $1 "." $2 "." $3 "." $4}'
>Это все понятно, а как это в скрипте реализовать?
>#!/usr/bin/awkNapimer tak:
[tmp]$ cat 1.txt | awk '{print $3}' | ./1.sh
192.168.161.15
[tmp]$ cat 1.txt
10:49:51.438168 IP 192.168.161.15.1028 > 192.168.161.1.2222: . ack 1196 win 64339
[tmp]$ cat 1.sh
#!/bin/awk -f
BEGIN {FS="."}
{
for(i=1;i <= NF-1;i++){
if (i!=4){
printf "%d.",$i
} else {
printf "%d\n",$i
}
}
}
>>a pri4em tut awk ?
>filter - это скрипт написанный на awk.
>Вопчим, этот вопрос отпал. Появился другой: есть строка
>10:49:51.438168 IP 192.168.161.15.1028 > 192.168.161.1.2222: . ack 1196 win 64339
>как в скрипте вытянуть адрес 192.168.161.15?
>Если разделитеь пробел - то получаем 192.168.161.15.1028.
>Если "." то - 438168 IP 192Samij prostoi sposob:
[tmp]$ cat test | awk '{print $2}' | awk -F . '{print $1"."$2"."$3"."$4}'
2.2.2.2
[tmp]$ cat test
11.1.1 2.2.2.2.2