您可以使用for。
for i in $(cat IN.txt| awk '{print $3}'); do grep -i $i OUT.txt | wc -l; done
或更可读:
for i in $(cat IN.txt| awk '{print $3}'); do result=$(grep -i $i OUT.txt | wc -l);echo $i "|" $result; done
输出:
0xabc | 0
0xdef | 1
0xghi | 1
0xjkl | 1
注意:只匹配数据包,我没看时间,因为您想检查数据包,这似乎并不重要
,
#!/bin/bash
IN=$(awk -F " " '{print $3}' in.txt)
OUT=$(awk -F " " '{print $3}' out.txt)
for i in $IN
do
flag=false
for o in $OUT
do
if [[ "$i" == "$o" ]]; then
flag=true
break
fi
done
if [[ $flag == false ]]; then
echo "Cannot find packet: $i in out"
fi
done
结果:
dingrui@gdcni:~/onie$ ./filter.sh
Cannot find packet: 0xabc in out
,
您可以使用fgrep
:
$ cut -d' ' -f3 < OUT.txt > OUT.txt2
$ fgrep -v IN.txt -f OUT.txt2
08:43:22 IN 0xabc
本文链接:https://www.f2er.com/3117733.html