首页 > 代码库 > grep及正则表达式随笔
grep及正则表达式随笔
grep [acivn] [--color=auto] ‘查找字符串‘ filename
-a:将binary文件以text文件的方式查找数据
-c:计算找到‘查找字符串‘的次数
-i:忽略大小写
-v:反向选择
-n:将查找结果列出行号
--color=auto:查找结果中关键字着色
**********grep使用例子**********
(1)列出一个目录下目录的名称:
ll |grep ‘^d‘ |awk ‘{print $9}‘
其中awk中$后面是列的位置
(2)列出一个文件,去除空白行:
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 字符序列
^word 表示以word开头
word$ 表示以word结尾
. 表示一定有一个任意字符
char* 表示有0个或无穷多个重复的char
\ 转义字符
[list] 表示选择一个字符匹配,例如a[bc]a 表示aba & aca
[char1-char2] 表示任意的连续字符,char1到char2之间,例如[a-z]表示任意小写字母
[^list] 表示去除不要的字符,有反向选择的意思,例如[^abc] 表示去除包含abc串的行
char\{n,m\} 表示n到m个char,需要使用转义字符
eg:一个脚本,模拟service httpd status 输出
#!/bin/bash #The output of commond "service httpd status" or "/etc/init.d/httpd status" m=$(ps -ef |grep httpd |sed ‘s/^.*grep.*$//g‘ |sed ‘/^$/d‘) n=$(ps -ef |grep httpd |sed ‘s/^.*grep.*$//g‘ |sed ‘/^$/d‘ |grep root |grep /usr/sbin/httpd |awk ‘{print $2}‘) #n=$(ps -ef |grep httpd |grep -v grep |grep root |grep /usr/sbin/httpd |awk ‘{print $2}‘) #n=$(ps -ef |grep httpd |sed ‘/.*grep.*/d‘ |grep root |grep /usr/sbin/httpd |awk ‘{print $2}‘) if [ "$m" = "" ]; then echo "httpd is stopped" else echo "httpd (pid "$n") is running..." fi
本文出自 “小菜鸟” 博客,请务必保留此出处http://akiny09.blog.51cto.com/1299657/1429980