我是一个菜鸟,一个Linux的新手,刚开始学习Linux只是为了生活而学习,在慢慢的接触中,就觉得如果我要是能掌握Linux一定会很嗨皮,学习Linux也有快一个月的时间了,在这里发表一下自己的一点认识,就从grep和egrep的使用作为例子来说吧。
你可以任意搜索文件中的字符串和符号,使用grep,egrep,fgrep命令。熟练地掌握命令对我们的学习有很大的帮助
Grep和egrep可以为你搜索一个多个文件的字符串。一个提示符可以是单个字符,一个字符串,一个字,一个句子。使用一个字符代表相同的字符,叫做表达式。还可以加一些详细的命令,来达到我们的搜索要求。
Fgrep命令可以让你搜索一个或多个文件的特殊字符。一个字符是由文字组成的字符串。Fgrep命令不能使用表达式。
在上面我也提到了grep的作用,下面来说一下grep的命令格式:grep option(s) pattern filename(s)。
grep的命令参数:
-v :反向匹配,显示不能被模式所匹配到的行。
-i :搜索时不区分大小写,ignore-case。
-o :显示被模式匹配到的字符而不是行。
-E :支持扩展的正则表达式,也就是egrep。
正则表达式,什么是正则表示式呢,正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
“模式”是由①字符,和②字符匹配次数,以及③出现的位置和④词组组成的,当然了,这些都是有其正规的名字的。
模式匹配中有:
① 字符匹配:
. : 匹配任意单个字符。
② 次数匹配:
* :匹配任意次。
[] : 匹配指定范围内的任意单个字符。
\? : 匹配前面的字符0次或者1次。
贪婪模式:尽可能长的去匹配字符。
\{m\} :匹配前面的字符 m 次。
\{m,n\} :匹配前面的字符至少 m 次,至多 n 次。
\{m,\} :匹配前面的字符至少 m 次。
\{0,n\} :匹配前面的字符至多 n 次。
③ 位置锚定:
^ : 锚定行首。
$ : 锚定行尾。
^$: 空白行
\<: 锚定词首,也可以用\b。
\>: 锚定词尾,也可以用\b。
④ 分组
\(\):表示括号内的为一个单词,如:\(abc\),表示abc为单独一个单词。
还有一个重要的也是很强大的用法,那就是“引用”,什么是引用呢,当你想在你前面匹配到的内容在后面也可以同样的被匹配到,就用到引用了,引用是和分组在一起用的。
引用:
\1 :后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配到的内容的。
这些就是我对grep的理解,希望有所帮助,共同努力学习Linux。