码迷,mamicode.com
首页 > 编程语言 > 详细

文本过滤之——grep,sort,wc,uniq,tr, 精准过滤IP地址,A类地址,B类地址.... 并排序

时间:2015-08-01 19:12:08      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:cut   sort   uniq   grep   tr   

文本过滤之IP地址精准过滤    

  在写之前自己整理了一点自己平时老是搞混的东西,最基础的就不写了,前面的东西不想看得一眼代过,就当借着做IP过滤顺便整理下常用的,看看后面如何精准锁定IP地址吧。


一、正则表达式(PATRERN) 括号() 方括号[] 尖括号<> 大括号{} 的使用


     \[\]  匹配指定范围内的任意单个字符    

    [^] 用于匹配指定对象之外的任意单个字符

    ^[] 用于匹配指定对象并且在行首的任意单个字符


    \(\) 用作后向引用,也可以用于限定或(\|)的作用域

    \1 引用第一个左括号及其与之对应的右括号所包含的所有内容

    \2 同理

    \3 同理


    \< 其后面的任意字符必须作为单词的首部出现 

    \> 其前面的任意字符必须作为单词的尾部出现

    \<root\> 单词root必须单独作为单词


    \{\} 用于匹配次数

    \{m,n\} 匹配其前字符至少m次,至多n次

例:数字开头数字结尾

grep ‘\([0-9]\).*\1$‘ /etc/inittab
用于匹配某一类的任意单个字符 [[:digit:]],[[:lower:]],[[:upper:]],[[:punct:]],[[:space:]],[[:alpha:]],[[:alnum:]]

二、grep(全局搜索),sort(文本统计),cut(文本剪切工具),wc(文本统计),tr(字符处理命令),uniq(显示重复行,相邻+相同=重复)

    grep [option] pattern [file] [file1] ...

    常用 -i -v -o --color -E

    -A #   显示其后#行内容

    -B #    其前

    -C #    其前后

例:cpu family及其后两行

grep -A 2 ‘cpu family‘ /proc/cpuinfo


    sort [option] [file]

    -n 数值排序

    -r 降序排列

    -t 字段分隔符

    -k 以哪个字段为准进行排序

    -f 忽略字符大小写排序

例:

sort -t: -n -k3 /etc/passwd


    cut [option] [file]

    -d 定义分隔符

    -f 与-d一起使用,指定显示那个区域

    -b 以字节为单位进行分割

    -c以字符为单位进行分割

例:看看变化就知道

netstat -nut | grep ESTAB | awk ‘{print $5}‘
netstat -nut | grep ESTAB | awk ‘{print $5}‘ | cut -d: -f1


    wc [option] [file]

    -l 显示行数

    -w 显示单词数

    -c 显示字节数

    tr [option]

    -d 删除出现在字符集中的所有字符

例:

cat /etc/passwd | tr -d ‘a‘


    uniq [option] [file]

    -c 显示文件中行重复的次数

    -d 只显示重复行

三、(重头戏)过滤普通IP地址和选定类型的IP地址

样本:iptest.txt

127.0.0.1s asdfdf

123.0.7.193

wo 23.2.2.3

network127.0.0.1/16 is a bad guy

193.192.168.32

172.168.100.1


普通IP:不建议使用,但是速度稍微快一点

grep ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9] iptest.txt


A类IP:(B,C类同理)

grep --color ‘\<\([1-9]\|[1-9][0-9]\|1[01][0-9]\|12[0-7]\)\.\([0-9]\|[1-9][0-9]\|1[0-9][0-9]\|2[0-4][0-9]\|25[0-4]\)\.\([0-9]\|[1-9][0-9]\|1[0-9][0-9]\|2[0-4][0-9]\|25[0-4]\)\.\([0-9]\|[1-9][0-9]\|1[0-9][0-9]\|2[0-4][0-9]\|25[0-4]\)‘ iptest.txt


技术分享

定有不足,差错肯请致邮:KaiXuanyin@live.com











本文出自 “我只想安静地奔跑” 博客,请务必保留此出处http://gumpping.blog.51cto.com/9811308/1680822

文本过滤之——grep,sort,wc,uniq,tr, 精准过滤IP地址,A类地址,B类地址.... 并排序

标签:cut   sort   uniq   grep   tr   

原文地址:http://gumpping.blog.51cto.com/9811308/1680822

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!