1.查找
a.grep:能使用基本的正则表达式
b.egrep:能使用扩展的正则表达式 = grep -E
c.fgrep:匹配固定的字符串而非正则表达式
2.meta字符
.*代表“匹配任一字符的任意长度”,*若置于正则表达式的第一字符,不具有任何特殊意义
^符号置于[]中的第一个字符表示反向的意思
\{n,m\}:匹配他前面单个字符的重复出现的次数的区间 \{3\}表示至少三次
\( \):讲\(与\)间的模式存储在特殊的保留空间
3.后向引用
首先,将子表达式包含在\( \)中。最多包含9个子表达式
然后,使用\digit digit可以是1-9,表示与先前第digit个子表达式匹配
eg:
e\(ch\)o.*\1表示,当遇到echo时,把ch保存在内存中,并编号为1,之后,可以有0个或者多个字符。当再遇到ch时,匹配到一个
4.grep,sed的几个实例演练
grep -v "^$" trace1.sh 去除空白行
sed 's/:.*//' /etc/passwd | sort -u 删掉第一个冒号后面的所有字符,删除重复的行然后排序
find /home/zhangh -type d -print | 寻找所有的目录
sed 's;/home/zhangh;/home/lih;' | 字符替换
sed 's/^/mkdir /' | 在每行的开头添加mkdir
5.cut的使用
cut -d : -f 1,5 passwd --分隔符为:,取第1,5列的数据
cut -d: -f 3- /etc/passwd --从第三个字段开始显示,直到最后一个字段
cut -c1 -4,5 /etc/passwd --取每行的1-4和第5个字符
6.awk的简单使用方法
awk设计的重点就是在字段与记录上,awk将每条记录内的字段数目,存储在内建变量NF中
awk -F : '{print $1,$5}' /etc/passwd
这章的重点主要是grep,sed和正则表达式配合使用。
阅读(2230) | 评论(0) | 转发(0) |