grep 命令中表达式的应用。正则表达式在我们编程语言和linux系统中得到了很广泛的应用,利用表达式可以更快更方便的去查找信息。
表达式1:^标记,^标记用于查找以该标记后面的文本为开始的行。例如:grep ^this * 就是说查找改目录下所有文件中以this为开头的行。
加上 -c 参数就是统计包含该文本的数量了
表达式2:$标记.该标记与^标记正好相反。旨在查找以该标记结尾的行。例如:grep "you$" message.1 是说查找message.1文件中以“you”结尾的行。
表达式3:整合^$标记.单纯把^$放在一起是查找空行。
表达式4:单点.标记。单点标记用来匹配含有其中任意字符的行。例如:grep “i.love” * 就是匹配含有i和love的行,但是不匹配ilove。
如果你是想匹配某个单词的话,加-w 参数。例如:
表达式5:*标记,该标记用于匹配零个或多个前面的关键字的行。
这里情况有点特殊,对于0个的情况没有能查询欻里。但是用g*gle却能查询出来不是很了解具体的情况。我的系统是
Linux version 3.5.0-52-generic (buildd@klock) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #78~precise1-Ubuntu SMP Wed Jun 11 17:14:53 UTC 2014
请高人指点
--EOF--
表达式1:^标记,^标记用于查找以该标记后面的文本为开始的行。例如:grep ^this * 就是说查找改目录下所有文件中以this为开头的行。
jack@Ubuntu:~/demo$ cat message.1
this is a test
this is a demo
i love you
ihateyou
jack@Ubuntu:~/demo$ cat message.2
have a good day
this girl is my gf
that is not my love
jack@Ubuntu:~/demo$ grep "^this" *
message.1:this is a test
message.1:this is a demo
message.2:this girl is my gf
加上 -c 参数就是统计包含该文本的数量了
jack@Ubuntu:~/demo$ grep -c "^this" *
dirH:0
Hi.class:0
Hi.java:0
luch.txt:0
message.1:2
message.2:1
表达式2:$标记.该标记与^标记正好相反。旨在查找以该标记结尾的行。例如:grep "you$" message.1 是说查找message.1文件中以“you”结尾的行。
jack@Ubuntu:~/demo$ grep "you$" message.1
i love you
ihateyou
表达式3:整合^$标记.单纯把^$放在一起是查找空行。
jack@Ubuntu:~/demo$ cat message.3
this is for test empty line
one empty line above
two empty lines above.
jack@Ubuntu:~/demo$ grep "^$" message.3
jack@Ubuntu:~/demo$ grep -c "^$" messag*
message.1:0
message.2:0
message.3:3
表达式4:单点.标记。单点标记用来匹配含有其中任意字符的行。例如:grep “i.love” * 就是匹配含有i和love的行,但是不匹配ilove。
jack@Ubuntu:~/demo$ cat message.1
this is a test
this is a demo
i love you
iloveyou
ihateyou
jack@Ubuntu:~/demo$ grep "i.love" message*
message.1:i love you
如果你是想匹配某个单词的话,加-w 参数。例如:
jack@Ubuntu:~/demo$ grep -w "you" message*
message.1:i love you
表达式5:*标记,该标记用于匹配零个或多个前面的关键字的行。
jack@Ubuntu:~/demo$ cat message.4
gle
google
gogle
jack@Ubuntu:~/demo$ grep "go*gle" message.4
google
gogle
jack@Ubuntu:~/demo$ grep "*gle" message.4
jack@Ubuntu:~/demo$ grep "g*gle" message.4
gle
google
gogle
这里情况有点特殊,对于0个的情况没有能查询欻里。但是用g*gle却能查询出来不是很了解具体的情况。我的系统是
Linux version 3.5.0-52-generic (buildd@klock) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #78~precise1-Ubuntu SMP Wed Jun 11 17:14:53 UTC 2014
请高人指点
--EOF--