首页 > 系统相关 >Linux-grep

Linux-grep

时间:2024-06-17 09:48:06浏览次数:14  
标签:bin grep lizhenya Linux txt root bash

Linux-grep

grep功能:

擅长过滤

2.2 参数:

-n ------显示行号
-v ------取反,排除
-i ------不区分大小写
-w ------根据单词进行过滤(两边有空格 特殊符号)
grep==egrep 或 grep -E;是否支持扩展正则
| -----或者
-o -----显示执行过程,显示出grep匹配的内容
-E -----可以使用扩展正则
-c -----统计搜索字符的行数
-r -----递归调用
-l -----只显示文件名称+路径
-A -----打印匹配本身以及下面几行的内容
-B -----打印匹配本身以及上面几行的内容
-C -----打印匹配本身以及下面几行、上面几行的内容

2.2.1 参数示例:

2.2.1.1 查找113或103的内容)

使用参数:| (或者)

root@deem /oldboy]# egrep '1(1|0)3' sed.txt (103,Alex,COO

2.2.1.2 查找目录下包含xxx的内容的文件

使用参数:-r:递归调用
[root@web01 ~]# grep -r '9' /server/scripts/
/server/scripts/1/hah.sh:url = ['https://live.kuaishou.com/u/3xv83wrxssweftm/3xednr6zjfte9m9',
/server/scripts/1/hah.sh:        'https://live.kuaishou.com/u/3xv83wrxssweftm/3xednr6zjfte9m9',
/server/scripts/1/kuaishou.sh:wget -q https://live.kuaishou.com/u/3xv83wrxssweftm/3xednr6zjfte9m9 -O /dev/null

2.2.1.3 只显示文件名称+路径,不显示文件内容

使用参数:管道(|) -r
[root@web01 ~]# grep -rl '9' /server/scripts/
/server/scripts/1/bakup.sh
/server/scripts/1/etc/fstab
/server/scripts/1/hah.sh
/server/scripts/1/kuaishou.sh

2.2.1.4 grep后向引用 \1

[root@web01 oldboy]# egrep -o '(.)\1*' 01.txt
b
aa
bbb

2.2.1.5 显示匹配21oldbg后4行

使用参数:- A
		[root@web01 ~]# grep -A 4 '21oldbg' /etc/passwd
		21oldbg:x:1092:1092::/home/21oldbg:/bin/bash
		21olddog:x:1093:1093::/home/21olddog:/bin/bash
		gou:x:1094:1094::/home/gou:/bin/bash
		bg:x:1095:1095::/home/bg:/bin/bash
		dog:x:1096:1096::/home/dog:/bin/bash

2.2.1.6 显示匹配21oldbg上面的2行

使用参数:-B
		[root@web01 ~]# grep -B 2 '21oldbg' /etc/passwd
		21oldboy:x:1090:1090::/home/21oldboy:/bin/bash
		21oldgou:x:1091:1091::/home/21oldgou:/bin/bash
		21oldbg:x:1092:1092::/home/21oldbg:/bin/bash

2.2.1.7 显示匹配21oldbg上面和下面的2行

使用参数:-C
		[root@web01 ~]# grep -C 2 '21oldbg' /etc/passwd
		21oldboy:x:1090:1090::/home/21oldboy:/bin/bash
		21oldgou:x:1091:1091::/home/21oldgou:/bin/bash
		21oldbg:x:1092:1092::/home/21oldbg:/bin/bash
		21olddog:x:1093:1093::/home/21olddog:/bin/bash
		gou:x:1094:1094::/home/gou:/bin/bash

2.2.1.8 将下列字母进行拆分,相同字母排为一行

[root@web01 oldboy]# echo "baabbbccccddddeeeefffff"|egrep -o '(.)\1*'
b
aa
bbb
cccc
dddd
eeee
fffff

2.正则表达式实战

1.	正文:
I am lizhenya teacher!
I teach linux.
test

I like badminton ball ,billiard ball and chinese chess!
my blog is http:// blog.51cto.com
our site is http://www.lizhenya.com
my qq num is 593528156
not 572891888887. 

例题:

过滤以m开头的行

[root@Shell ~]# grep "^m" test.txt
my blog is http:// blog.51cto.com
my qq num is 572891887.

过滤以m结尾的行

[root@Shell ~]# grep "m$" test.txt
my blog is http:// blog.51cto.com
our site is http://www.lizhenya.com

排除空行, 并打印行号

[root@student ~]# grep -vn "^$" lizhenya.txt
[root@web01 oldboy]# grep -n '.' zz.tat

** 匹配任意一个字符,不包括空行**

[root@student ~]# grep "." lizhenya.txt

匹配所有

[root@student ~]# grep ".*" lizhenya.txt

匹配单个任意字符

[root@node1 ~]# grep "lizhen.a" lizhenya.txt

以点结尾的

[root@student ~]# grep "\.$" lizhenya.txt

精确匹配到

[root@student ~]# grep -o "8*" lizhenya.txt

匹配有abc的行

[root@student ~]# grep "[abc]" lizhenya.txt

匹配数字所在的行"[^0-9]"

[root@student ~]# grep "[0-9]" lizhenya.txt

11、匹配所有小写字母[^a-z]

[root@student ~]# grep "[a-z]" lizhenya.txt

12、重复0三次

[root@student ~]# grep "8\{3\}" lizhenya.txt

13、重复3个000不用转义符

[root@student ~]# grep -E "8{3}" lizhenya.txt

14、重复数字8, 3-5次

[root@student ~]# grep -E "8{3,5}" test.txt

15、至少1次或1次以上

[root@student ~]# grep -E "8{1,}" lizhenya.txt

标签:bin,grep,lizhenya,Linux,txt,root,bash
From: https://www.cnblogs.com/megshuai/p/18251760

相关文章

  • 在Linux中,有哪些常用的网络管理工具?
    在Linux中,网络管理工具非常多样,它们可以帮助系统管理员监控、配置和故障排除网络。以下是一些常用的网络管理工具:ifconfig(或ip):ifconfig(在较新的系统中被ip命令取代)用于显示和配置网络接口。例如,ipaddrshow可以显示所有网络接口的状态。ip:ip命令是一个多功能的......
  • 在Linux中,如何查看某进程所打开的所有文件?
    在Linux中,查看某个进程所打开的所有文件主要可以使用lsof命令。下面是详细的步骤:确定进程ID(PID):首先,你需要知道你想查询的进程的进程ID。这可以通过多种方式完成,例如使用ps命令配合grep来查找进程名称并提取PID。例如,如果你想查找名为myprocess的进程打开的文件,可以这样做:......
  • 在Linux中,如何显示/test目录下的所有目录?
    在Linux中,若要详细显示/test目录下的所有目录,可以使用几种不同的命令方法,其中最常用的是ls命令结合相应的选项。以下是几种展示方法:1.使用ls命令的基本形式ls/test这个命令会列出/test目录下的所有条目(包括文件和目录),但不会显示详细信息。2.使用ls命令的长格式ls-l/tes......
  • 在Linux中,如何删除/a/b下的所有文件及目录?
    在Linux中,删除一个目录及其所有子文件和子目录是一个需要小心操作的过程,因为一旦执行,你将无法恢复被删除的数据。以下是几种删除/a/b下所有文件和目录的方法:使用rm命令:删除/a/b目录及其所有内容的最简单方法是使用rm命令的-r(递归)选项:rm-rf/a/b/*这里-rf选项组合表示:-r......
  • 【并发程序设计】总篇集 Linux下 C语言 实现并发程序
    11_Concurrent_Programing文章目录11_Concurrent_Programing1.进程概念进程内容进程类型进程状态2.进程常用命令进程信息命令top命令进程信息表进程优先级命令nice命令renice命令后台进程命令3.子进程创建子进程fork函数结束进程exit函数_exit函数回收子进......
  • Linux 系统监控与性能调优
    在使用Linux系统时,监控系统状态和性能是维护系统稳定运行的重要环节。通过系统监控工具,我们可以实时了解系统的资源使用情况,从而进行有效的性能调优。本文将介绍一些常用的系统监控工具及其使用方法,并提供一些性能调优的基本技巧。一、系统监控工具1.top和htoptop......
  • Linux - set
     zzh@ZZHPC:~$helpsetset:set[-abefhkmnptuvxBCHP][-ooption-name][--][arg...]Setorunsetvaluesofshelloptionsandpositionalparameters.Changethevalueofshellattributesandpositionalparameters,ordisplaythenamesan......
  • 嵌入式Linux中的LED驱动控制(使用多个次设备号)
    在前面的LED驱动控制中,都只使用了一个设备节点(一个次设备号)来进行操作,本例来讨论一下如何把三个基色的LED分别当成三个次设备,即产生出三个设备节点文件,但共用一个设备驱动(同一个主设备号),应用程序各自控制各自的LED。下面先给出完整的驱动程序代码,文件名仍为led.c。#include<l......
  • 【Linux】线程(一)
    谈论之前需要先谈论一些线程的背景知识其中就有进程地址空间,又是这个让我们又爱又恨的东西。注意:全篇都是在32位的情况下进行的目录背景知识:地址空间:内存:页表:基于以上理解文件缓冲区与虚拟地址:文件缓冲区:虚拟地址:线程:linux下的线程:与进程的澄清:win下的进程:与linux......
  • Linux 系统下工作中常用的shell命令
    目录ls:列出目录内容cd:改变当前工作目录pwd:显示当前工作目录的路径cp:复制文件或目录mv:移动文件或目录rm:删除文件或目录mkdir:创建新目录touch:创建空文件cat:连接文件并打印到标准输出设备上grep:在文件中查找模式find:在文件系统中查找文件这些命令是非常常用的,每个命令......