1. 程式人生 > >在壓縮話單中過濾指定IP的一個小腳本

在壓縮話單中過濾指定IP的一個小腳本

得到 2.3 bsp [0 過濾 ffffff bin 4.0 編寫

工作需要,需要過濾出含有指定的IP段的話單,編寫的腳本名字叫 filter.sh

#!/bin/bash

TARGET_PATH=/data/flume/flume_exec_log/Dst_for_flume.txt 此處直接寫絕對路徑的指定輸出文件

PATTERN1="133.23.10[123456]." 此處為過濾的字段,因為話單中肯定是包含IP的,所以最後邊的匹配0~255沒有寫
PATTERN2="133.23.8[0-9]."
PATTERN3="133.45.9[01]."
PATTERN4="19.12.15.18[34]."
PATTERN4="19.124.0."

if [ ! $# -eq 1 ];then
echo "$0 <file-path>"
exit 1
fi

grep -e $PATTERN1 -e $PATTERN2 -e $PATTERN3 -e $PATTERN4 $1 >> ${TARGET_PATH}

---------------

以上是第一版本

因為現場是生成的壓縮話單,需要在當天生成的壓縮話單中提取出需要的話單文件,生成指定的文件。

-----最終的版本為:

#!/bin/bash

TARGET_PATH=/data/flume/flume_exec_log/Dst_for_flume.txt

PATTERN1="132.35.10[123456]."
PATTERN2="132.35.8[0-9]."
PATTERN3="132.35.9[01]."
PATTERN4="10.1.1.18[34]."
PATTERN4="10.124.0."

zcat 2017051915*.gz | zgrep -e $PATTERN1 -e $PATTERN2 -e $PATTERN3 -e $PATTERN4 $1 >> ${TARGET_PATH}

-------

以上生成的文件,直接在生成壓縮話單的路徑下運行,之後打開另一個窗口,tail -f /data/flume/flume_exec_log/Dst_for_flume.txt 觀察提取進度,,,,最後得到所需話單.

在壓縮話單中過濾指定IP的一個小腳本