Linux三剑客及使用介绍
Linux 三剑客是(grep,sed,awk)三者的简称,他们通常结合正则一起使用。
grep擅长查找,sed擅长修改文件。awk擅长取列。
一、正则表达式
正则表达式:REGular EXPression, REGEXP
元字符:所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符
元字符 | 功能 |
---|---|
. | 匹配任意单个字符 |
* | X* 匹配0或多个X字符 |
+ | X+ 匹配至少1个X字符 |
.* | 匹配任意多个字符 |
^ | 匹配首行 |
$ | 匹配行尾 |
^$ | 空行 |
\ | 屏蔽一个元字符的特殊含义 |
\< | 锚定词首,其后面的任意字符必须作为单词首部出现 |
\> | 锚定词尾,其前面的任意字符必须作为单词的尾部出现 |
\b | 单词界定符 |
test{n} | 匹配前面为tes后面接n个t的字符串 |
test{n,m} | 匹配前面为tes后面接n~m个t的字符串 |
test{n,} | 匹配前面为tes后面有n个以上(包含n)的t的字符串 |
(test){n} | 将test做完整体匹配有n个test相连的字符串 |
[abc] | 包含abc中任意一个字符 |
[^abc] | 不包含abc中的任意一个字符(取反) |
二、grep的介绍
grep 是一个文本过滤工具
egrp 支持扩展正则
options部分
- -v 显示不被pattern匹配到的行
- -o 仅显示匹配到的字符串
- -n 显示匹配的行号
- -i 忽略字符大小写
- -A n 显示后n行
- -B n 显示前n行
- -C n 显示上下n行
- -r 递归查找
案列:
[root@ou ~]# grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
过滤出行首为root的行:
[root@ou ~]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
1、查找出当前passwd文件中以ftp或者mail开头的行,在屏幕上输出。
cat passwd|egrep "^ftp|^mail"|