Linux-grep

278 阅读1分钟

grep(global regular expression print)

语法:

grep [option] pattern file

简述:

简单说,grep在给定的文件中,逐行匹配,匹配上的一行将会被打印输出。

grep将file中的第一行复制进buffer,进行与pattern的匹配,匹配通过,将会按照option要求,将该匹配行打印到屏幕上。如此循环,直到文件末尾。

注意:

grep 不会存储,修改 文本行,并且,无法实现一行中部分匹配。

常用option:

        -v        取反//打印输出不匹配的文本行
        -i        忽略大小写
        -c        符合条件的行数
        -n        输出的同时打印行号
        ^*        以*开头         
        *$         以*结尾 
        ^$         空行 

具体操作:

创建一个新的文件命名为a_file,并将下面数据粘贴进去

boo
boot
book
booze
machine
boots
bungie
bark
aardvark
broken$tuff
robots
  • grep 'boo' a_file 打印包含boo行
  • grep -n 'boo' a_file 打印包含boo行并输出行号

QQ截图20230103110209.png

  • grep -nv 'boo' file 打印不包含boo行并输出行号

QQ截图20230103110737.png

  • grep -c 'boo' a_file 仅打印包含boo的行数

QQ截图20230103111040.png

  • grep -l 'boo' files... 在多个文件中打印包含boo的文件名

QQ截图20230103111443.png

  • grep -i 'BOO' a_file 忽略匹配字符串的大小写,打印包含匹配字符串的行

QQ截图20230103112155.png

  • grep -x 'boo' a_file 精确匹配boo字符,打印是boo字符的文本行

QQ截图20230103112454.png

  • grep -A2 'mach' a_file 打印包含mach行,并且多打印两行

QQ截图20230103112736.png

  • grep -E 'boot?' a_file 使用正则表达式作为匹配模式(建议学习正则表达式

QQ截图20230103113309.png

参考链接

★★★Linux文本三剑客超详细教程---grep、sed、awk - alonghub - 博客园 (cnblogs.com)

可以看下这个老哥发的视频,个人感觉特使用

城里的青蛙的个人空间_哔哩哔哩_bilibili