对文档中目录名进行替换
#sed -e ‘s/\/home\/sxzhou/\/home\/SXZHOU/‘ < sed.txt
查找文件格式是txt和jpg格式的文件
#find . ( -name ".txt" -o -name ".jpg" ) -print
递归目录过滤字段
#grep ‘aaaa‘ -R
过滤以大写字母开头的行
#grep -n ‘^[A-Z]‘ 1.txt
搜索ooo前没有g的字符串所在的行
#vi test.txt
sxzhou
sxzhouooo
sxzhogooo
ooosxzhou
SXZHOU
#grep "[^g]ooo" test.txt
sxzhouooo
搜索开头不是英文字母的行
#vi test.txt
sxzhou
sxzhouooo
sxzhogooo
ooosxzhou
SXZHOU
123ndfkjd
#grep "^[^a-zA-Z]" test.txt
123ndfkjd
过滤空行和注释行
#egrep -v "^#|^$" 1.txt
过滤包含连续两个字母o的行
#cat test.txt
sxzhou
sxzhouooo
sxzhogooo
ooosxzhou
SXZHOU
123ndfkjd
dfsdjfoo
hdskfho
#grep -n ‘o{2}‘ test.txt
2:sxzhouooo
3:sxzhogooo
4:ooosxzhou
7:dfsdjfoo
#grep "ooo" test.txt
sxzhouooo
sxzhogooo
ooosxzhou
dfsdjfoo
搜索包含s和u之间任意个数的任意字符的字符串所在行.表示0个或多个任意字符
#cat test.txt
sxzhou
ooosxzh24~ou!
sxzhsdfkhou++
sxzhsdjfouM
sxzh
#grep "s.u" test.txt
sxzhou
ooosxzh24~ou!
sxzhsdfkhou++
sxzhsdjfouM
过滤有连续两个数字或三个数字的行
#grep -n ‘[[:digit:]]{2,3}‘ /etc/passwd
过滤root和apache用户的shell和UID
#egrep ‘^\b(root|apache)\b‘ /etc/passwd | cut -d: -f3,7
过滤至少一个空白字符开头的行
#grep "^[[:space:]]+.*" 1.txt
过滤字段的行,字段格式为#开头、接着至少一个空白字符、接着至少一个非空白字符
#grep "^#[[:space:]]+[^[:space:]]" 1.txt
过滤以root开头的行
#awk ‘/^root/‘ /etc/passwd
过滤包含500的行,匹配行的第一、二个域加10
#awk -F: ‘/500/ {print $1,$3+10}‘ passwd
正则表示ip地址0.0.0.0到999.999.999.999
"[0-9]{1,3}[.]{3}[0-9]{1,3}"
正则表示IPV4的IP
^(25[0-5]|2[0-4]\d|(1\d{2}|[1-9]?\d))(.(25[0-5]|2[0-4]\d|(1\d{2}|[1-9]?\d)){3}$)
分析:
IP分为四段,每段数字范围为0-255,IP地址组成特点:250-255、200-249、0-199
250-255 表示 25[0-5]
200-249 表示 2[0-4]\d
0-199 表示
0-9 表示 \d
10-99 表示 [1-9]\d
100-199 表示 1\d{2}
所以0-199可以表示为 (1\d{2}|[1-9]?\d)
0-255就可以表示为 (25[0-5]|2[0-4]\d|(1\d{2}|[1-9]?\d))
从多到少列出每个远程主机的连接数
#netstat -tnu | grep "[0-9]" | tr -s " " ":" | cut -d: -f6 | sort | uniq -c | sort -rn
持续更新中....
原文地址:http://blog.51cto.com/xiaoxiaozhou/2108601