24.Linux中grep命令

一、grep命令用法

grep使用:

  1. 在文件file.txt中搜索字符串"hello",并打印匹配到的行:

    复制代码
    grep "hello" file.txt
  2. 在文件file.txt中忽略大小写地搜索字符串"hello",并打印匹配到的行:

    复制代码
    grep -i "hello" file.txt
  3. 在文件file.txt中反向匹配,即打印不包含字符串"hello"的行:

    复制代码
    grep -v "hello" file.txt
  4. 在文件file1.txt和file2.txt中搜索字符串"hello",并打印匹配到该模式的文件名,而不是匹配的行:

    复制代码
    grep -l "hello" file1.txt file2.txt
  5. 递归搜索目录directory/及其子目录中的文件,查找字符串"hello",并打印匹配到的行:

    复制代码
    grep -r "hello" directory/
  6. 在文件file.txt中搜索字符串"hello",并打印匹配到的行及其行号:

    复制代码
    grep -n "hello" file.txt
  7. 在文件file.txt中搜索满足多个模式之一的行,可以同时指定多个模式进行搜索:

    复制代码
    grep -e "pattern1" -e "pattern2" file.txt
  8. 在文件file.txt中使用正则表达式进行搜索,匹配以字符'b'开头,后跟一个元音字母,最后是字符't'的行:

    复制代码
    grep -E "b[aeiou]t" file.txt
  9. 在文件file.txt中搜索字符串"hello",并打印匹配到的行及其前后的2行内容:

    复制代码
    grep -C 2 "hello" file.txt

二、grep命令详解

grep命令是在Linux和Unix类操作系统中非常常用的文本搜索工具。它可以在指定的文件中搜索匹配特定模式的行,并将匹配到的行打印出来。

基本的grep命令语法如下:

复制代码
grep [选项] 模式 [文件...]

在这里,选项是可选的,用于指定一些特殊的搜索参数。模式是你希望搜索的模式或正则表达式。文件是你要搜索的文件路径列表。如果不指定文件,则grep命令会从标准输入读取数据。

下面是一些常用的grep命令选项:

  • -i:忽略大小写,不区分大小写地进行搜索。
  • -v:反向匹配,打印不匹配模式的行。
  • -l:只打印匹配到模式的文件名,而不是匹配的行。
  • -r:递归搜索子目录。
  • -n:显示匹配到模式的行及行号。
  • -C <num>:前后显示匹配到模式的行数。
  • -e <pattern>:指定多个模式之一进行搜索。

以下是一些grep命令实例:

  1. 在文件中搜索特定模式:

    复制代码
    grep "pattern" file.txt
  2. 忽略大小写进行模式匹配:

    复制代码
    grep -i "pattern" file.txt
  3. 在多个文件中搜索:

    复制代码
    grep "pattern" file1.txt file2.txt
  4. 递归搜索目录:

    复制代码
    grep -r "pattern" directory/
  5. 显示匹配行及行号:

    复制代码
    grep -n "pattern" file.txt
  6. 通过正则表达式搜索:

    复制代码
    grep -E "regex pattern" file.txt
相关推荐
爱奥尼欧37 分钟前
【Linux】网络部分——Socket编程 UDP实现网络云服务器与本地虚拟机的基本通信
linux·服务器·网络
Ching·38 分钟前
RK3568入门之VScode远程连接开发板,直接开发板上面编程和实验
linux·ide·vscode·编辑器·rk3568
iconball1 小时前
个人用云计算学习笔记 --20 (Nginx 服务器)
linux·运维·笔记·学习·云计算
Wang's Blog1 小时前
Linux小课堂: 在 VirtualBox 虚拟机中安装 CentOS 7 的完整流程与关键技术详解
linux·运维
liu****1 小时前
基于websocket的多用户网页五子棋(九)
服务器·网络·数据库·c++·websocket·网络协议·个人开发
liu****1 小时前
基于websocket的多用户网页五子棋(八)
服务器·前端·javascript·数据库·c++·websocket·个人开发
馨谙2 小时前
Linux中权限系统
linux·运维·服务器
jieyu11192 小时前
虚拟专用网络
linux·网络
报错小能手2 小时前
linux学习笔记(19)进程间通讯——消息队列
linux·笔记·学习
liujing102329293 小时前
Day14_内核编译&安装
linux