【文本搜索工具-grep命令】
工作方式:在一个或者多个文件中搜索字符串模板。如果模板中包括空格,则空格必须被引用,模板后的所有字符串被看作文件名。
返回值:模板搜索成功返回0,失败返回1,如果文件不存在,则返回2。
常用命令:
实例1-查找指定进程
ps -ef | grep $name
实例2-从文件中读取关键词进行搜索
cat file1 | grep -f file2
实例3-从文件中读取关键字进行搜索且显示行号
cat file1 | grep -nf file2
实例4-从文件中查找关键字
grep 'xyz' file
实例5-从多个文件中查找关键字
grep 'xyz' file1 file2
实例6-grep不显示本身进程
ps aux | grep \[s]sh 或者ps aux | grep ssh | grep -v "grep"
实例7-找出以u开头的内容
cat file | grep ^u
实例8-找出非u开头的内容
cat file | grep ^[^u]
实例9-找出以hat结尾的内容
cat file | grep hat$
实例10-显示包含ed或者at字符的内容
cat file | grep -E "ed|at"
实例11-显示当前目录下以.txt结尾的文件中所包含每个字符串至少有7个连续小写字符的字符串的行
grep '[a-z]\{7\}' *.txt
深入正则学习:
^ #行的开始 如:'^a' 匹配所有以a开头的行
$ #行的结尾 如:'a$' 匹配所以以a结尾的行
[] #匹配指定范围内的字符 如:'[Aa]bc' 匹配abc Abc
[^] #匹配一个不在指定范围内的字符
x\{m\} #重复字符x,m次 如:'o\{5\}' 匹配oooooxyz