目录
##grep文本过滤器
-i 不区分大小写
-E 升级为拓展正则
-n 显示行数
-o ##只显示需要过滤的文本,显示出来
-v 取反整行,不显示查找的 -->整行取反
-r 递归查找
-A after 在什么之后的全部显示 ##都可以接行数
-B before在什么之前的全部显示
-C center 以选中的行数为中心来进行过滤
##过滤以w开头的内容
[root@wangyalin-hunan-changsha shell]# cat /etc/passwd|grep "^w"
wangyalin:x:1000:1000::/home/wangyalin:/bin/bash
##过滤以bash结尾的内容
[root@wangyalin-hunan-changsha shell]# cat /etc/passwd|grep "bash$"
root:x:0:0:root:/root:/bin/bash
##egrep
grep的拓展版--》支持基本和拓展正则--元字符
元字符
##echo和eval的区别
1.eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量
3.两次扫描
test.txt内容:hello shell world!
myfile="cat test.txt"
(1)echo $myfile #result:cat test.txt
(2)eval $myfile #result:hello shell world!
从(2)可以知道第一次扫描进行了变量替换,第二次扫描执行了该字符串中所包含的命令
[root@wangyalin-hunan-changsha passwd]# file="cat nihao.txt"
[root@wangyalin-hunan-changsha passwd]# echo "file"
file
[root@wangyalin-hunan-changsha passwd]# echo "$file"
[root@wangyalin-hunan-changsha passwd]# eval "$file"
hello shell
world!
##正则表达式
定义:按照某种正确的规则,将字母,数字,特殊符号组合成一个公式,用来表达某个意思。
##一般多和正则表达式结合使用--》查找命令
[root@wangyalin-hunan-changsha passwd]# awk -F ":" '$3 ~ /[0-9]{4}/{print $1,$3}' /etc/passwd
wangyalin 1000
wangguang 1001
##写正则表达式
正则表达式的规则
正则的逻辑或 |
[ ]匹配范围的任意字符 [a-z][az][az\-]
##中括号 进行逐个单字符进行取反
[^ ]匹配范围外的任任意字符 [^0-9]##匹配不是数字的字符--》按
{} 组合匹配 touch a{1,3,5} touch b{1..10}
.*匹配任意个字符
.就是匹配单个字符
\用于转义特殊字符,使其失去特殊意义。
/是表示分割字符 --》/b 内容/b
\d(匹配数字)、\w(匹配字母、数字、下划线)、\s(匹配空白字符
##通用修饰符
##次数[a{]1,2}查找1-2个以a 开头的英文单词
##用来描述范围
##元字符
+ ##表示1个或者多个前面的字符
?##表示0个或者1个前面的字符
* ##表示0个或者多个前面的字符
##锚点搜索
\b \b以什么单词搜索\<>\ =
\< 以什么单词开头===\b
\> 以什么单词结尾\b
^$表示是空格
##查看IP地址为255.255.255.255的正则表达式
255.255.255.255
[root@wangyalin-hunan-changsha passwd]# cat /var/log/secure|egrep "(([0-9][1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9][1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|2[5][0-5])"
255.255.255.255