当前位置: 首页 > news >正文

Linux环境grep搜索方法记录

1 grep

grep 命令,用来搜索字符串所在位置,可以具体到不同文件,不同行;
在Linux 下,查看命令释义如下

zhaoc@ubuntu2004:~$ grep --help
Usage: grep [OPTION]... PATTERNS [FILE]...
Search for PATTERNS in each FILE.
Example: grep -i 'hello world' menu.h main.c
PATTERNS can contain multiple patterns separated by newlines.Pattern selection and interpretation:-E, --extended-regexp     PATTERNS are extended regular expressions-F, --fixed-strings       PATTERNS are strings-G, --basic-regexp        PATTERNS are basic regular expressions-P, --perl-regexp         PATTERNS are Perl regular expressions-e, --regexp=PATTERNS     use PATTERNS for matching-f, --file=FILE           take PATTERNS from FILE-i, --ignore-case         ignore case distinctions in patterns and data--no-ignore-case      do not ignore case distinctions (default)-w, --word-regexp         match only whole words-x, --line-regexp         match only whole lines-z, --null-data           a data line ends in 0 byte, not newlineMiscellaneous:-s, --no-messages         suppress error messages-v, --invert-match        select non-matching lines-V, --version             display version information and exit--help                display this help text and exitOutput control:-m, --max-count=NUM       stop after NUM selected lines-b, --byte-offset         print the byte offset with output lines-n, --line-number         print line number with output lines--line-buffered       flush output on every line-H, --with-filename       print file name with output lines-h, --no-filename         suppress the file name prefix on output--label=LABEL         use LABEL as the standard input file name prefix-o, --only-matching       show only nonempty parts of lines that match-q, --quiet, --silent     suppress all normal output--binary-files=TYPE   assume that binary files are TYPE;TYPE is 'binary', 'text', or 'without-match'-a, --text                equivalent to --binary-files=text-I                        equivalent to --binary-files=without-match-d, --directories=ACTION  how to handle directories;ACTION is 'read', 'recurse', or 'skip'-D, --devices=ACTION      how to handle devices, FIFOs and sockets;ACTION is 'read' or 'skip'-r, --recursive           like --directories=recurse-R, --dereference-recursive  likewise, but follow all symlinks--include=GLOB        search only files that match GLOB (a file pattern)--exclude=GLOB        skip files that match GLOB--exclude-from=FILE   skip files that match any file pattern from FILE--exclude-dir=GLOB    skip directories that match GLOB-L, --files-without-match  print only names of FILEs with no selected lines-l, --files-with-matches  print only names of FILEs with selected lines-c, --count               print only a count of selected lines per FILE-T, --initial-tab         make tabs line up (if needed)-Z, --null                print 0 byte after FILE nameContext control:-B, --before-context=NUM  print NUM lines of leading context-A, --after-context=NUM   print NUM lines of trailing context-C, --context=NUM         print NUM lines of output context-NUM                      same as --context=NUM--color[=WHEN],--colour[=WHEN]       use markers to highlight the matching strings;WHEN is 'always', 'never', or 'auto'-U, --binary              do not strip CR characters at EOL (MSDOS/Windows)When FILE is '-', read standard input.  With no FILE, read '.' if
recursive, '-' otherwise.  With fewer than two FILEs, assume -h.
Exit status is 0 if any line (or file if -L) is selected, 1 otherwise;
if any error occurs and -q is not given, the exit status is 2.Report bugs to: bug-grep@gnu.org
GNU grep home page: <http://www.gnu.org/software/grep/>
General help using GNU software: <https://www.gnu.org/gethelp/>

2 搜索方式

2.1 通用格式

我目前使用的命令,通用格式如下

grep <命令选项(可选)> <附加命令项(可选)> <带搜索字符串(支持正则)> <路径(默认为当前路径)>

2.2 当前路径搜索

在当前路径搜索特定字符串,并显示出对应行数

grep -rn "zhaoc"

在这里插入图片描述

2.3 指定路径搜索

grep -rn zhaoc  ~/11-tools/

在这里插入图片描述

2.4 搜索指定文件类型

grep -rin --include=*.h --include=*.cpp foo <可选搜索路径>

实际操作,举例如下:

zhaoc@ubuntu2004:~$ date; grep -rn --include="*h" include ~/gitRepository/UsefulWheels/
20231231日 星期日 22:18:09 CST
/home/zhaoc/gitRepository/UsefulWheels/LinuxCppInterface/BasicInclude.h:4:#include <iostream>
/home/zhaoc/gitRepository/UsefulWheels/LinuxCppInterface/BasicInclude.h:5:#include <string>
/home/zhaoc/gitRepository/UsefulWheels/LinuxCppInterface/BasicInclude.h:6:#include <string.h>
/home/zhaoc/gitRepository/UsefulWheels/LinuxCppInterface/BasicInclude.h:7:#include <vector>
/home/zhaoc/gitRepository/UsefulWheels/LinuxCppInterface/CppWheels_Other.h:4:#include "BasicInclude.h"
/home/zhaoc/gitRepository/UsefulWheels/LinuxCppInterface/CppWheels_Other.h:5:#include "Linuxcpptypes.h"
/home/zhaoc/gitRepository/UsefulWheels/LinuxCppInterface/CppWheels_String.h:4:#include "BasicInclude.h"
/home/zhaoc/gitRepository/UsefulWheels/CppInterface/CppWheels_String.h:4:#include <iostream>
/home/zhaoc/gitRepository/UsefulWheels/CppInterface/CppWheels_String.h:5:#include <string>
/home/zhaoc/gitRepository/UsefulWheels/CppInterface/CppWheels_String.h:6:#include <vector>
http://www.lryc.cn/news/270496.html

相关文章:

  • C语言-破解密码
  • ffmpeg 解码文件时的时间戳问题
  • Java企业电子招投标系统源代码,支持二次开发,采用Spring cloud框架
  • [python]基于faster whisper实时语音识别语音转文本
  • 2023纠结中前行? 2024继续还是放下?
  • 原型链补充
  • 《Linux Nano命令详解:小而强大的文本编辑器》
  • 系列四、Eureka自我保护
  • C++回调函数-实操(二)
  • MySQL中常用的用户授权操作
  • LabVIEW开发智能火灾自动报警系统
  • Vagrant使用教程
  • 【Java】ThreadLocal原理与使用场景
  • 软件测试/测试开发丨Linux进阶命令(curl、jq)
  • 模式识别与机器学习-SVM(带软间隔的支持向量机)
  • CentOS 7 firewalld+ipset+定时任务防御ssh暴力破解——筑梦之路
  • ElasticSearch的RestClient结合Sniffer提高可用性
  • 【网络面试(2)】DNS原理-域名和IP地址的查询转换
  • 【PHP】函数array_intersect、array_diff:从数组中取出、去除指定的几个键值
  • 【华为机试】2023年真题B卷(python)-冠亚军排名-奖牌榜排名
  • MyBatisPlus之逻辑删除
  • 在macOS中搭建.NET MAUI开发环境
  • [NCTF 2022]calc
  • 【pandas_不重复项计数】
  • 菜鸟学习vue3笔记-vue hooks初体验
  • 81 使用DFS和BFS解机器人的运动范围
  • vue-springboot基于JavaWeb的家装一体化商城平台guptn
  • .NET进阶篇06-async异步、thread多线程2
  • java 方法
  • HarmonyOS 组件通用属性之通用事件 文档参数讲解(点击事件)