今天,难得好天气,过去阴雨绵绵几天,确实干什么都没多少心劲。
对于Linux 指令,其实工作中用的也就那么多,但是真正用的很6的,确实给我们工作效率带来极大提高。
-i:在搜索的时候忽略大小写。
例子1: grep "Test start" -i filename // 当前指定文件名字
例子2: grep "Test start" -i test/filename // 当前目录下的某个目录的文件
例子3: grep "Test start" -i * // 当前目录下的所有文件
-r:递归搜索路径。如果想查找当前目前以及其子目录的全部文件时,可以使用 -r 选项。
例子1: grep "Test start" -r * // 当前目录下的所有文件及其子目录
例子2: grep "Test start" -r // 当前目录下的所有文件及子目录
-n:显示结果所在行号。
例子1: grep "Test start" -n filename // 当前指定文件名字
例子2: grep "Test start" -n test/filename // 当前目录下的某个目录的文件
例子3: grep "Test start" -n * // 当前目录下的所有文件
-c:统计匹配到的行数。
注意,是匹配到的总行数,不是匹配到的次数。统计某个文件中匹配到的行数,总行数,不是每一行匹配到的次数。
grep "Test start" -inc *
-o:只显示符合条件的字符串。
但是不整行显示,每个符合条件的字符串单独显示一行。
[my_basic_helloworld_1]grep "Test start" -in grep.log -o
-v:输出不带关键字的行(反向匹配)。
[my_basic_helloworld_1]grep "Test start" -in grep.log -o -v
-w:匹配整个单词。
如果是字符串中包含这个单词,则不作匹配。
grep "Test start" -in grep.log -o -w
[my_basic_helloworld_1]grep "Test start" -in grep.log -o -w
输出结果:
4:test start // 只显示第四行的匹配结果。
-Ax:在输出的时候包含结果所在行之后的指定行数。
这里指之后的x行,A:after
-Bx:在输出的时候包含结果所在行之前的指定行数。
这里指之前的x行,B:before
-Cx:在输出的时候包含结果所在行之前和之后的指定行数。
这里指之前和之后的x行,C:context(上下文的意思)
-e:实现多个选项的匹配,逻辑or关系。
grep -e "Test" -e "start" -in *.log
-x: 只显示全列符合的列。
-E:使用扩展正则表达式,而不是基本正则表达式,在使用”-E”选项时,相当于使用egrep。
格式:grep "REGEX" filename
如果你能有效地利用正则表达式,这是个很有用的特点。在下面的例子中,搜索全部以“lines”开始以“empty”结束的字串,如搜索“lines[之间任意字]empty” ,并且忽略大小写。
正则表达式遵循的几个重复的操作:
- ? 最多匹配一次
- * 匹配零次或者任意多次
- + 匹配一次以上
- {n} 匹配n次
- {n,} 最少匹配n次
- {,m} 最多匹配m次
- {n,m} 匹配n到m次
^ : 匹配正则表达式的以“某字符串”开头的行。
grep "^Test start" -in * // 开头匹配
$ : 匹配正则表达式的以“某字符串”结尾的行。
grep "Test start$" -in * // 结尾匹配
完结。