你的位置:首页 > 操作系统

[操作系统]grep命令及正则


文本查找

grep,egrep,fgrep

grep :Global Research

  根据模式搜索文本,并将符合模式的文本行显示出来

模式:Pattern,文本字符和正则的元字符组合而成匹配条件

grep  'root'  /etc/passwd

  -i :ignore case,忽略大小写

  --color,高亮输出

  -v:反向匹配,显示没有被模式匹配到的行

  -o:只显示被模式匹配到的字符串

 

*:任意长度的任意字符

?:任意单个字符

[]:

[^]:指定范围外的

 

正则:Regular Expression,RegExp

元字符:

. :匹配任意单个字符

grep 'r..t' /etc/passwd

 

匹配次数(贪婪模式):

* :匹配其前面的字符任意次

  a*b

  a.*b

.* :任意长度的任意字符

\? : 匹配其前面的字符1次或0次

\{m,n\} :匹配其前面的字符至少m次,至多n次

  \{1,\} :至少1次

  \{0,3\}:0~3次

grep 'a\{1,\}b' test.txt  :a至少1次,接b

 

位置锚定:

^:锚定行首,此字符后面的任意内容必须出现在行首

grep '^r..t' /etc/passwd

$:锚定行尾,此字符前面的任意内容必须出现在行尾

grep 'w$' /etc/inittab

grep 'b..h$' /etc/inittab

^$:空白行

grep '^$' /etc/inittab