首页 > 系统相关 >Linux 常用命令 grep

Linux 常用命令 grep

时间:2023-10-09 17:47:34浏览次数:35  
标签:grep 包含 pattern 常用命令 filename 关键字 查找 Linux

grep 查找文件中符合条件的字符串,与 sed、awk 组成 Linux 的三剑客,语法格式:grep [选项] 关键字 文件名 关键字加引号(单引号,双引号),不加引号的区别

关键字加引号,关键字会被看成一个整体,可以包含空格或特殊字符1)单引号如果关键字包含特殊字符($ 和 \' 除外),使用单引号会对特殊字符转义,进行完全匹配搜索2)双引号关键字即使包含特殊符号,使用双引号原样输出3)不加引号搜索包含关键字中任意单词的文本行
一、打印包含关键字的行 语法格式:grep "关键字" 文件名 查找包含关键字 root 的行,并显示出来

 

编辑 切换为居中 添加图片注释,不超过 140 字(可选) 二、打印以某关键字开头的行 语法格式:grep "^关键字" 文件名 在关键字前面加 ^ 号,表示搜索以关键字开头的行

 

编辑 切换为居中 添加图片注释,不超过 140 字(可选) 三、打印某关键字结尾的行 语法格式:grep "关键字$" 文件名 在关键字后面加上 $ 符号,表示查找以关键字结尾的行

 

编辑 切换为居中 添加图片注释,不超过 140 字(可选) 四、不区分大小写打印关键字的行 语法格式:grep -i "关键字" 文件名 打印包含 root 的行,可以是 Root ,ROOT 等等

 

编辑 切换为居中 添加图片注释,不超过 140 字(可选) 五、打印关键字并显示行号 语法格式:grep -n "关键字" 文件名 在文件 test.txt 中查找关键字的同时,并且显示行号

 

编辑 切换为居中 添加图片注释,不超过 140 字(可选) 六、递归搜索关键字 语法格式:grep -r 关键字 搜索所有的文件及子目录,包含关键字的行 grep -r "root" /home/back

 

编辑 切换为居中 添加图片注释,不超过 140 字(可选) 七、统计匹配某关键字的次数 语法格式:grep -c "关键字" 文件名 统计包含 root 的行数

 

编辑 切换为居中 添加图片注释,不超过 140 字(可选) 八、过滤空白行 固定的语法格式: grep -v "^$" 文件名 先输出所有内容,然后键入命令对比后,更好展示

 

编辑 切换为居中 添加图片注释,不超过 140 字(可选) 九、查找包含多个关键字的行 语法格式:grep -E "关键字1|关键字2" 文件名 查找包含 root 或者 sync 的行 grep -E "root|sync" test.txt

选项

  • -i 搜索时候忽略大小写

  • -n 列出所有的匹配行,显示行号

  • -v 反向选择

  • -c 只输出匹配行的数量

  • -l 只列出符合匹配的文件名,不列出具体的匹配行

  • -h 查询多文件时不显示文件名

  • -r 递归搜索

  • -q 禁止输出任何结果,已退出状态表示搜索是否成功

  • --color=auto 将找到的关键字加上颜色显示

  • -E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)

  • -B, --before-context=NUM 打印以文本起始的NUM 行

  • -A, --after-context=NUM 打印以文本结尾的NUM 行

下面是一些使用grep命令的示例:

查找单个文件中的内容

grep "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并将其打印出来。

查找多个文件中的内容

grep "pattern" file1 file2 file3

这个命令将在file1、file2和file3文件中查找包含"pattern"字符串的行,并将它们打印出来。

递归查找目录中的文件

grep -r "pattern" directory

这个命令将在目录directory及其子目录中查找包含"pattern"字符串的文件,并将它们打印出来。

统计匹配的行数

grep -c "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并返回匹配的行数。

显示匹配行的行号

grep -n "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并返回匹配行的行号。

反向匹配

grep -v "pattern" filename

这个命令将在filename文件中查找不包含"pattern"字符串的行,并将其打印出来。

使用扩展正则表达式

grep -E "pattern" filename

这个命令将在filename文件中使用扩展正则表达式查找包含"pattern"字符串的行,并将其打印出来。

只匹配整个单词

grep -w "pattern" filename

这个命令将在filename文件中查找包含"pattern"整个单词的行,并将其打印出来。

显示匹配行之前的若干行

grep -B 2 "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并显示匹配行之前的2行。

显示匹配行之后的若干行

grep -A 2 "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并显示匹配行之后的2行。

显示匹配行前后的若干行

grep -C 2 "pattern" filename

这个命令将在filename文件中查找包含"pattern"字符串的行,并显示匹配行前后的2行。

 

 

编辑

标签:grep,包含,pattern,常用命令,filename,关键字,查找,Linux
From: https://www.cnblogs.com/zxy-come-on/p/17752332.html

相关文章

  • Rust cargo常用命令
    目录设置国内镜像创建新项目构建项目运行项目检查项目,但不构建可执行文件运行项目的测试发布项目更新依赖查看项目依赖关系树创建新的库项目文档生成设置国内镜像cd~/.cargo#创建config文件vimconfig#添加如下镜像源[source.crates-io]registry="https://github.com/......
  • linux常用svn命令
    linux常用svn命令 1、将文件checkout到本地目录svncheckoutpath(path是服务器上的目录)例如:svncheckoutsvn://192.168.1.1/pro/domain简写:svnco       2、往版本库中添加新的文件svnaddfile例如:svnaddtest.php(添加test.php)......
  • 编辑linux服务启动命令(app-script.sh命令编写)
    #!/bin/sh#注:这里可替换为你自己的执行程序,其他代码无需更改APP_NAME=app-biz.jar#使用说明,用来提示输入参数usage(){echo"Usage:sh脚本名.sh[start|stop|restart|status]"exit1}#检查程序是否在运行is_exist(){pid=`ps-ef|grep$APP_NAME|grep-vgrep|awk'{print......
  • Linux设置定时任务,定时ping某台主机并记录日志
    一、先写个ping脚本并记录日志1)viping.shnohupping10.242.0.114-w2|awk'{print$0"\t"strftime("%H:%M:%S",systime())}'>ping.log&说明:  ping参数说明-c(设置ping的次数,默认无限次,可选)-i(设置ping的时间间隔,默认1秒,可选)-w(设置ping的超时时间,可选)  ......
  • Archlinux 系统迁移
    1.网络环境下见https://bbs.archlinuxcn.org/viewtopic.php?id=4611没有试过2.硬盘间路径切换到/下,使用pigz打包archlinuxsudotar--use-compress-program=pigz-cvpfarch-backup.tgz--exclude=/proc--exclude=/lost+found--exclude=/arch-backup.tgz--exclude=/m......
  • archlinux 使用时遇到的问题
    link:https://www.notion.so/0621e8837f0a4a9bb846f1fad37d94a4notionID:0621e883-7f0a-4a9b-b846-f1fad37d94a41.一、telegram模糊,且在hidpi存在缩放问题https://wiki.archlinux.org/title/Telegram_(简体中文)https://wiki.archlinuxcn.org/wiki/桌面项根据27点将des......
  • linux CMA
    linuxCMACMA(ContiguousMemoryAllocator)是Linux内核中的一种内存分配器,它的作用是为设备驱动程序和其他需要大块连续内存的组件提供内存分配支持。reference:linux/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txtlinux内存子系统-保留内存ht......
  • Linux文件时间
    查看文件时间stat命令使用statfilename命令来查看文件时间AccessTime:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间。(cat、less)ModifyTime:简写为mtime,表示文件内容的更改时间,当文件的数据内容被修改时,更新这个时间。(vim)ChangeTime:简写为ctime,表示文件的改动......
  • k8s-常用命令
    查看yam配置1.获取deploy列表kubectlgetdeploy-nsunlogin--context=sunlogin-k8s-context2.查看指定deploy配置kubectlgetdeploysunlogin-tag-oyaml-nsunlogin--context=sunlogin-k8s-context 动态扩容缩容kubectlscaledeploy--replicas=3nginx-ns......
  • Linux系列---【查看mac地址】
    查看mac地址命令查看所有网卡命令nmcliconnectionshow查看物理网卡mac地址ifconfig删除网卡nmcliconnectiondeletevirbr0禁用libvirtd.servicesystemctldisablelibvirtd.service启用libvirtd.servicesystemctlenablelibvirtd.service......