标签:正则表达式
&& 并且 成功-执行 不成功-不执行
|| 或者 成功-不执行 不成功-执行
; (不)成功-执行
grep --color ‘root‘ /etc/passwd 高亮
echo "alias cg=‘grep --clort‘" >> ~/.bashrc
-n 显示行数
-c 计数几行
-v 不包含keyword
-A 2 多显示下两行
-B 2 多显示上两行
-C 2 多显示上下两行
-r ‘root‘ /etc/* 目录下搜索关键字,含文件目录名字,内容
-rh 不显示最前面目录路径
cg ‘[0-9]‘ 1.txt
cg ‘[a-zA-Z]‘ 1.txt
cg -v ‘[a-zA-Z]‘ 1.txt 不包含
cg ‘^[a-z]‘ 1.txt 以字母开头
cg ‘[^0-9]‘ 1.txt 不包含纯的数字,不包含空行
cg ‘^[^0-9]‘ 1.txt 不以数字开头的行,不包含空行
cg ‘^$‘ 1.txt 显示空行
cg ‘r.o‘ 1.txt 任意一个字符
cg ‘r*o‘ 1.txt 0个或多个前面的字符 o也符合
cg ‘r.*o‘ 1.txt r开头o结果都算,中间不管什么
cg ‘r\?o‘ 1.txt 脱义字符 ==cg -E ‘r?o‘ 0个或1个前面的字符
grep -E ==egrep E代替脱义
egrep ‘r+o‘ 1.txt 1个或多个前面的字符
+ ? () {} |需使用egrep 或者 grep -E 或者 脱义\
egrep ‘root|nologin‘ 1.txt 或者
grep ‘root‘ 1.txt | grep ‘nologin‘ 并且
egrep ‘(rr)+‘ 1.txt 整体匹配 ==grep -E ‘(rr)+‘ 1.txt
egrep ‘(rr){1,3}‘ 1.txt 匹配1到3次
egrep ‘(rr){5}‘ 1.txt 匹配5次
sed 与grep 区别不支持颜色 grep所有的功能sed都支持
显示功能,n r // p
sed -n ‘10‘p 1.txt 打印前10行 ‘1,10‘ ‘3,$‘
sed -n ‘/root/‘p 1.txt 包含root的行
sed -n ‘/r.ot/‘p 1.txt ‘/r*o/‘ ‘/r.*o/‘
sed -n ‘/r\?ot/‘p 1.txt ‘/r\+o/‘ ‘/root\|nologin/‘ ‘/\(oo\)\+/‘
sed -n ‘/root/p; /mail/p‘ passwd 显示root或者mail的行,全含有的话,显示多次
=== sed -n -e ‘/root/p‘ -e ‘/mail/p‘ passwd 遇上一条命令一样
sed -n -r ‘/root|mail/p‘ passwd 不会显示多次
r代替脱义
sed -r -n ‘/(oo)+/‘p 1.txt 无需脱义
‘/[0-9]/‘ ‘/[^0-9]/‘纯数字 ‘/[^a-zA-Z]/‘纯字母 ‘/^$/‘空行
删除功能,无需脱义和r,关键字需要//,没有关键字不需要//
sed ‘/^$/‘d 1.txt 删除空行 ‘/[0-9]/‘ ‘/[a-zA-Z]/‘
sed ‘1,19‘d 1.txt 删除1到19行 不会改变文件内容
sed -i ‘1,19‘d 1.txt 改变文件内容 wc -l 1.txt 不推荐使用,先预览再使用,或者cp
查找替换,与vim相似,@#
sed ‘1,10s/nologin/login/g‘ 1.txt 1到10行替换 -i 直接修改内容
sed ‘1,10s/\/sbin\/login/login/g‘ 1.txt 脱义
sed ‘1,10s#/sbin/login#login#g‘ 1.txt 无需脱义
sed ‘1,10s@/sbin/loing@login@g‘ 1.txt 无需脱义
sed ‘s@/sbin/loing@login@g‘ 1.txt 全部替换
sed ‘s@^.*$@login@g‘ 1.txt 所有行换成 &表示一整行
sed ‘s@^.*$@&login@g‘ 所有行尾增加
sed ‘s@^.*$@& login@g‘ 多了空格
sed ‘s#[0-9]##g‘ 删除所有数字,空 [a-zA-Z]
sed ‘s#[^0-9a-zA-Z]##g‘删除所有特殊字符
调换
sed -r ‘1,10s#(^[a-zA-Z0-9]+)(:.*:)(.*$)#\3\2\1#g‘ 第一段和最后一段调换位置,不包含特殊符号
sed -r ‘s/(^.)(.*)(.$)/\3\2\1/g‘ passwd 第一个字符和最后一个字符调换
awk 区别 分段 不支持颜色,不支持{ } grep sed支持{ }
显示
awk -F ‘:‘ ‘OFS=":" {print $3,$4}‘ passwd OFS指定分隔符
匹配
awk ‘/root/‘ passwd
awk ‘/root|user/‘ passwd 或者,不会多次显示,无需脱义
awk ‘/r*o/‘ passwd . *. ? +
awk ‘/(oo)+/‘ passwd
awk -F ‘:‘ ‘$1~/r*o/‘ passwd 段匹配
awk -F ‘:‘ ‘$1~/r*o/ {print $3}‘ passwd 匹配后只显示某一段
awk -F ‘:‘ ‘$1~/r*o/ {print $1}; $1~/mail/ {print $1}‘ passwd 或者,满足多个,多次显示
awk -F ‘:‘ ‘$1~/r*o|mail/ {print $1}‘ passwd 同上,但不会多次显示
最后2节未更新
标签:正则表达式
原文地址:http://fishboy84.blog.51cto.com/1816326/1733541