grep [acivn] [--color=auto] '查找字符串' filename
-c:计算找到'查找字符串'的次数
-i:忽略大小写
-v:反向选择
-n:将查找结果列出行号
--color=auto:查找结果中关键字着色
**********grep使用例子**********
(1)列出一个目录下目录的名称:
ll |grep '^d' |awk '{print $9}'
其中awk中$后面是列的位置
grep -v '^$' /etc/httpd/conf/httpd.conf
(3)去除注释行
grep -v '^$' /etc/httpd/conf/httpd.conf |grep -v '^#'
(4)忽略大小写并注明行号:
dmesg |grep -in 'network'
(5)查找一个以m开头、并且以m结尾的单词
grep -in 'm[a-z]*m' regular_express.txt
**********正则表达式基础**********
--word 字符串
--char 字符
--list @H_403_70@字符序列
^word @H_403_70@表示以word开头
word$ @H_403_70@表示以word结尾
. @H_403_70@表示一定有一个任意字符
char* @H_403_70@表示有0个或无穷多个重复的char
\ @H_403_70@转义字符
[list] @H_403_70@表示选择一个字符匹配,例如a[bc]a 表示aba & aca
[char1-char2] @H_403_70@表示任意的连续字符,char1到char2之间,例如[a-z]表示任意小写字母
[^list] @H_403_70@表示去除不要的字符,有反向选择的意思,例如[^abc] 表示去除包含abc串的行
char\{n,m\} @H_403_70@表示n到m个char,需要使用转义字符
eg:一个脚本,模拟service httpd status 输出
#!/bin/bash #Theoutputofcommond"servicehttpdstatus"or"/etc/init.d/httpdstatus" m=$(ps-ef|grephttpd|sed's/^.*grep.*$//g'|sed'/^$/d') n=$(ps-ef|grephttpd|sed's/^.*grep.*$//g'|sed'/^$/d'|greproot|grep/usr/sbin/httpd|awk'{print$2}') #n=$(ps-ef|grephttpd|grep-vgrep|greproot|grep/usr/sbin/httpd|awk'{print$2}') #n=$(ps-ef|grephttpd|sed'/.*grep.*/d'|greproot|grep/usr/sbin/httpd|awk'{print$2}') if["$m"=""]; then echo"httpdisstopped" else echo"httpd(pid"$n")isrunning..." fi原文链接:https://www.f2er.com/regex/361597.html