首页 > 系统相关 >Linux grep命令详细教程

Linux grep命令详细教程

时间:2023-04-27 16:56:56浏览次数:48  
标签:教程 grep 搜索 file Linux 字符串 txt hello

[本文出自天外归云的博客园]

简介

Linux grep命令是一种非常常用的文本搜索工具,它可以在给定的文件中搜索匹配的字符串,并输出匹配的行。grep是全称“global search regular expression print”,可以识别正则表达式,并使用正则表达式进行搜索。

选项

以下是 grep 的所有选项:

grep [options] [pattern] [files]
  • -a, --text: 将二进制文件作为文本文件处理。
  • -c, --count: 显示匹配行数,而不是行本身。
  • -e pattern, --regexp=pattern: 查找指定的模式,支持多个模式。
  • -f file, --file=file: 从文件中读取模式,每个模式占一行。
  • -i, --ignore-case: 忽略大小写。
  • -l, --files-with-matches: 只打印文件名,而不是行本身。
  • -n, --line-number: 在每行的前面打印行号。
  • -r, --recursive: 遍历子目录中的文件。
  • -v, --invert-match: 输出不匹配的行。
  • -x, --line-regexp: 仅匹配整行。
  • -w, --word-regexp: 仅匹配整个单词。

pattern 通常是一个正则表达式,用于匹配指定的文本模式。

files 可以是若干个文件,也可以是目录。

以上是 grep 命令的所有选项,更多信息可以使用 man grep 在终端中查看。

常用grep选项举例

下面是常用的grep选项及其举例:

  1. 搜索指定字符串

可以使用grep搜索包含指定字符串的文件或文件夹,例如:

grep "hello" file.txt
grep "hello" folder/file.txt
  1. 搜索多个字符串

使用-E选项可以在同一行中搜索多个字符串。

grep -E "hello|world" file.txt
  1. 忽略大小写

使用-i选项可以忽略大小写的差异。

grep -i "hello" file.txt
  1. 输出行号

使用-n选项可以输出匹配字符串所在行的行号。

grep -n "hello" file.txt
  1. 反向搜索

使用-v选项可以输出不包含指定字符串的行。

grep -v "hello" file.txt
  1. 搜索某个范围内的行

使用 -A, -B, 或-C选项搜索特定范围内的行。

grep -A 2 "hello" file.txt  #输出包含“hello”的行以及后两行。
grep -B 2 "hello" file.txt  #输出包含“hello”的行以及前两行。
grep -C 2 "hello" file.txt  #输出包含“hello”的行以及前后两行。
  1. 搜索整个单词

使用-w选项可以搜索指定单词作为整个单词匹配。

grep -w "hello" file.txt
  1. 统计匹配次数

使用-c选项可以统计匹配字符串的个数。

grep -c "hello" file.txt
  1. 搜索指定文件类型

使用通配符可以搜索特定类型的文件或使用 --include选项来仅搜索指定文件类型。

grep "hello" *.txt
grep "hello" --include "*.txt" folder/
  1. 搜索子目录

使用-r或-R选项可以搜索子目录的文件。

grep -r "hello" folder/
grep -R "hello" folder/
  1. 不忽略二进制文件

使用-a选项可以强制grep搜索二进制文件。

grep -a "hello" binary_file.bin
  1. 搜索时忽略特定目录

使用 --exclude-dir选项来忽略特定目录的搜索。

grep -r "hello" folder/ --exclude-dir=log/
  1. 搜索特定行数

使用 -m 选项指定只搜索文件中的前几行。

grep -m 10 'hello' file.txt # 只搜索文件中的前10行
  1. 输出匹配字符串前后的内容

使用 -o 选项仅输出匹配字符串,而 -A 和 -B 选项可以输出字符串前后的内容。

grep -o 'hello' file.txt # 只输出匹配到的 'hello' 字符串,而不包含它前后的内容
grep -A 3 'hello' file.txt # 输出包含 'hello' 字符串的行以及后三行
grep -B 2 'hello' file.txt # 输出包含 'hello' 字符串的行以及前两行
  1. 显示不匹配行

使用 -L 选项输出不匹配指定字符串的行。

grep -L 'hello' file.txt # 输出不匹配 'hello' 字符串的行
  1. 显示匹配行前几行和后几行的内容

使用 -C 选项,可以同时输出匹配字符串前后几行的内容。

grep -C 2 'hello' file.txt # 输出包含 'hello' 字符串的行以及前后两行内容
  1. 搜索多个文件

可以一次性搜索多个文件。

grep 'hello' file1.txt file2.txt file3.txt # 搜索 file1.txt, file2.txt, file3.txt 文件中的 'hello' 字符串
  1. 搜索时忽略空白字符

使用 -w 选项,可以忽略匹配字符串前后的空格、制表符等空白字符。

grep -w 'hello' file.txt # 忽略匹配字符串前后的空格、制表符等空白字符
  1. 搜索时查看匹配字符串的上文或下文

使用 -B 和 -A 选项,可查看匹配字符串上下文的内容。

grep -B 2 'hello' file.txt # 输出包含 ‘hello’ 字符串的行以及匹配字符串前2行
grep -A 3 'hello' file.txt # 输出包含 ‘hello’ 字符串的行以及匹配字符串后3行

以上就是grep的所有功能举例。

标签:教程,grep,搜索,file,Linux,字符串,txt,hello
From: https://www.cnblogs.com/LanTianYou/p/17359397.html

相关文章

  • Git使用教程
    当使用Git时,以下是一些基本操作和建议:安装Git:首先,你需要安装Git。可以在官方网站上下载适合你电脑的版本。配置用户信息:在开始使用之前,确保配置了用户信息。这包括用户名和邮箱地址。$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.email"yourema......
  • Linux安装配置达梦数据库教程
    1.安装规范:为方便之后统一运维管理,现规定以下信息:安装包和密钥存放目录:/boban安装目录:/home/dmdba/dmdbms数据目录:/dbdata/dmdata挂载目录:/mnt2.数据安装工作:数据库安装准备工作:创建组:[root@localhost/]#groupadddinstall创建用户:[root@localhost/]#useradd-gdinst......
  • 基于Linux系统的PXE搭建方法
    本文分享自天翼云开发者社区《基于Linux系统的PXE搭建方法》,作者:t***n 一、底层环境准备1、安装RedHat7.6系统2、关闭防火墙和Selinuxsystemctlstopfirewalldchkconfigfirewalldoffvim/etc/sysconfig/selinux    修改SELINUX=disabled3、配置本地yum源vim/e......
  • 在linux系统里将图片通过代码打出来
    打开终端1,访问https://sourceforge.net/projects/aa-project/files打开后选择aa-lib和aview分别下载最新版本2,将这两个安装包上传到linux系统里,并解压。3,这两个包,分别./configure&&make&&makeinstall4,完成后,yuminstallImageMagick5,上传一张图片,使用asciiview......
  • Linux命令(二)
    一.su命令(切换账户)su命令可以用于切换账户//语法:su-[用户名]不写用户名默认切换到root管理员root账户切换到普通账户不需要密码普通账户切换到管理员账户需要密码二.sudo命令(暂时使用管理员权限)sudo命令可以为一条命令暂时赋予管理员权限语法:sudo其他命令但是并......
  • 开心档之C++ STL 教程
    C++STL教程在前面的章节中,我们已经学习了C++模板的概念。C++STL(标准模板库)是一套功能强大的C++模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++标准模板库的核心包括以下三个组件:组件描述容......
  • 铁威马NAS教程之如何为NAS创建新用户
    铁威马NAS除了备份功能强大之外,它的优点还在于可以共享,方便我们办公和分享文件照片之类的。当我们拥有一台NAS之后,我们如何创建更多用户账号共同分享编辑呢?以铁威马为例,下面向大家分享如何创建用户:1、首先我们用管理员账号登录TOS系统2、打开<控制面板>,点开用户,点击右上角的创......
  • Grid/RAC 11.2.0.4 与 Linux 7 的一些兼容性问题
    1、在LINUX6上安装11.2.0.4的RAC,基本上不会遇到什么问题,但如果在LINUX7上安装11.2.0.4的RAC,经常性地会遇到问题。为了很好地解决这个问题,ORACLE官方在MOS上给了一篇文档《Installationwalk-through-OracleGrid/RAC11.2.0.4onOracleLinux7(DocID1951613.1)》,这篇文档......
  • Cisco ISE 3.1部署教程
    网络拓扑图如下: Step1:ISE安装 选择"1"回车进入安装 ......
  • Linux安装zookeeper
    前言:还是和以前一样,linux安装软件的目录都是data目录1.进入data目录,创建zookeeper目录并进入该目录cd/datamkdirzookeepercdzookeeper 2.上传"zookeeper-3.4.13.tar.gz"文件到当前目录(/data/zookeeper)  "zookeeper-3.4.13.tar.gz"文件地址:https://shaun.lanzo......