记录一下grep的 使用,方便查找

grep [选项]  [pattern]  [file]
命令  参数    匹配模式   文件【可用/可不用】

常用
    -i:忽略大小写
    -n:显示匹配行的行号
    -r:递归搜索子目录
    -o:只显示匹配的行【查询文件中是否存在匹配的内容】
    -c:只统计匹配的行数
    -v:只显示不匹配的行
    -E:使用扩展正则表达式
    -F:禁用正则表达式,使用固定字符串匹配
    -w:只匹配整个单词,而不是单词的一部分
    -A:显示匹配行之后的若干行
    -B:显示匹配行之前的若干行
    -C:显示匹配行前后的若干行


一般经常使用的命令:

grep -inr  xxx  【梯归查询此目录下是否存在匹配不分大小写的xxx项的文件的行号】

正则表达式
【文件和命令行在同一目录下】
【grep -in "^i" xxx.txt 】【查询xxx.txt中I 或者 i 开头的行】【^代表后一个字符开头,必须与字符搭配使用】

【grep -n  "\.$"】【查询以.结尾的行】

【grep -n "^$" xxx.txt】【查询文件的空行】【^$代表空行】

【grep -n "." xxx.txt 】 【查询文件空行之外的行】【.代表任意一个字符】

【grep -n "s*"  xxx.txt】 【查询文件中s所在的行】【*代表前一个字符出现的次数,必须与字符搭配使用】

【grep -n ".*" xxx.txt 】 【查询文件内容 等同与cat 】【.*代表所以内容】

【grep -n "^.*x"  xxx.txt 】 【查询文件中含有x的行】【以任意字符开头,以x结尾】

【grep -no "yes" xxx.txt  】【 查询文件中是否含有yes的行】

 【grep -c "yes" xxx.txt 】【查询文件中yes有几行】


实例:
查看log: 
 【grep -ino Exception  monkey.log 】
 【grep -inr Exception  monkey.log  】


【grep   --help】
模式选择和解释:
  -E、 --扩展的regexp PATTERN是一个扩展的正则表达式
  -F、 --固定字符串PATTERN是一组换行的字符串
  -G、 --basic regexp PATTERN是一个基本的正则表达式(默认值)
  -P、 --perl regexp PATTERN是一个perl正则表达式 
  -e, --regexp=PATTERN      用 PATTERN 来进行匹配操作
  -f, --file=FILE           从 FILE 中取得 PATTERN
  -i, --ignore-case         忽略大小写
  -w, --word-regexp         强制 PATTERN 仅完全匹配字词
  -x, --line-regexp         强制 PATTERN 仅完全匹配一行
  -z, --null-data           一个 0 字节的数据行,但不是空行

杂项:
  -s, --no-messages         不显示错误信息
  -v, --invert-match        选中不匹配的行
  -V, --version             显示版本信息并退出
      --help                显示此帮助并退出

输出控制:
  -m, --max-count=<次数>    得到给定<次数>次匹配后停止
  -b, --byte-offset         输出的同时打印字节偏移
  -n, --line-number         输出的同时打印行号
      --line-buffered       每行输出后刷新输出缓冲区
  -H, --with-filename       为输出行打印文件名
  -h, --no-filename         输出时不显示文件名前缀
      --label=<标签>        将给定<标签>作为标准输入文件名前缀
  -o, --only-matching       只显示匹配PATTERN 部分的行
  -q, --quiet, --silent     不显示所有常规输出
      --binary-files=TYPE   设定二进制文件的TYPE 类型;
                            TYPE 可以是`binary', `text', 或`without-match'
  -a, --text                等同于 --binary-files=text
  -I                        等同于 --binary-files=without-match
  -d, --directories=ACTION  读取目录的方式;
                            ACTION 可以是`read', `recurse',或`skip'
  -D, --devices=ACTION      读取设备、先入先出队列、套接字的方式;
                            ACTION 可以是`read'或`skip'
  -r, --recursive           等同于--directories=recurse
  -R, --dereference-recursive       同上,但遍历所有符号链接
      --include=FILE_PATTERN  只查找匹配FILE_PATTERN 的文件
      --exclude=FILE_PATTERN  跳过匹配FILE_PATTERN 的文件和目录
      --exclude-from=FILE   跳过所有除FILE 以外的文件
      --exclude-dir=PATTERN  跳过所有匹配PATTERN 的目录。
  -L, --files-without-match  只打印没有匹配上的<文件>的名称
  -l, --files-with-matches  只打印有匹配的<文件>的名称
  -c, --count               只打印每个<文件>中的匹配行数目
  -T, --initial-tab         行首制表符对齐(如有必要)
  -Z, --null<文件>名最后打印空字符

文件控制:
  -B, --before-context=NUM  打印文本及其前面NUM 行
  -A, --after-context=NUM   打印文本及其后面NUM 行
  -C, --context=NUM         打印NUM 行输出文本
  -NUM                      等同于 --context=NUM
      --color[=WHEN],
      --colour[=WHEN]       使用标记高亮匹配字串;
                            WHEN 可以是“always”、“never”或“auto”
  -U, --binary              不要清除行尾的 CR 字符(MSDOS/Windows)

备注:中间部分内容来自https://blog.csdn.net/m0_50370837/article/details/125068528

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐