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
#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

猜你在找的正则表达式相关文章