首页 > 系统相关 >linux cat查看文件使用grep实现多条件多场景过滤

linux cat查看文件使用grep实现多条件多场景过滤

时间:2023-10-23 15:33:02浏览次数:31  
标签:grep file -- PATTERN cat NUM FILE linux


  在实际应用过程中,我们查看日志文件时,经常会根据一定自定义的词语过滤,查看所有相关的数据行。最近遇到用cat查看文件,需要根据多关键词进行不同的场景过滤,在这里进行一个简单的总结:

  1.过滤多个关键词同时存在

cat file.log |grep -e '关键词1' |grep -e '关键词2'
#或者
grep -e '关键词1' -e '关键词2' file.log

  其中的-e为允许多个模式匹配,示例如下

                 

linux cat查看文件使用grep实现多条件多场景过滤_版本信息

  2.过滤关键词不存在的行

cat file.log|grep -v '关键词1' | grep -v '关键词2'
##或者
grep -v '关键词1' -v '关键词2' file.log

           -v:反向匹配,显示不符合模式的行  

              

linux cat查看文件使用grep实现多条件多场景过滤_版本信息_02

   3.显示匹配行的行号

grep -n '关键词1'   file.log
##或者
cat file.log|grep -n '关键词1'

    -n:显示匹配行的行号

      

linux cat查看文件使用grep实现多条件多场景过滤_文件控制_03

    4.其他参数使用简介

root@test40_1:~# grep --help
用法: grep [选项]... PATTERN [FILE]...
Search for PATTERN in each FILE.
Example: grep -i 'hello world' menu.h main.c

Pattern selection and interpretation:
  -E, --extended-regexp     PATTERN is an extended regular expression
  -F, --fixed-strings       PATTERN is a set of newline-separated strings
  -G, --basic-regexp        PATTERN is a basic regular expression (default)
  -P, --perl-regexp         PATTERN is a Perl regular expression
  -e, --regexp=PATTERN      用 PATTERN 来进行匹配操作
  -f, --file=FILE           从 FILE 中取得 PATTERN
  -i, --ignore-case         忽略大小写
  -w, --word-regexp         强制 PATTERN 仅完全匹配字词
  -x, --line-regexp         强制 PATTERN 仅完全匹配一行
  -z, --null-data           一个 0 字节的数据行,但不是空行

杂项:
  -s, --no-messages         不显示错误信息
  -v, --invert-match        选中不匹配的行
  -V, --version             显示版本信息并退出
      --help                显示此帮助并退出

Output 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       只显示匹配PATTERN 部分的行
  -q, --quiet, --silent     不显示所有常规输出
      --binary-files=TYPE   设定二进制文件的TYPE 类型;
                            TYPE 可以是`binary', `text', 或`without-match'
  -a, --text                等同于 --binary-files=text
  -I                        等同于 --binary-files=without-match
  -d, --directories=ACTION  读取目录的方式;
                            ACTION 可以是`read', `recurse',或`skip'
  -D, --devices=ACTION      读取设备、先入先出队列、套接字的方式;
                            ACTION 可以是`read'或`skip'
  -r, --recursive           等同于--directories=recurse
  -R, --dereference-recursive       同上,但遍历所有符号链接
      --include=FILE_PATTERN  只查找匹配FILE_PATTERN 的文件
      --exclude=FILE_PATTERN  跳过匹配FILE_PATTERN 的文件和目录
      --exclude-from=FILE   跳过所有除FILE 以外的文件
      --exclude-dir=PATTERN  跳过所有匹配PATTERN 的目录。
  -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 name

文件控制:
  -B, --before-context=NUM  打印文本及其前面NUM 行
  -A, --after-context=NUM   打印文本及其后面NUM 行
  -C, --context=NUM         打印NUM 行输出文本
  -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 is selected, 1 otherwise;
if any error occurs and -q is not given, the exit status is 2.

 



标签:grep,file,--,PATTERN,cat,NUM,FILE,linux
From: https://blog.51cto.com/u_15535797/7987813

相关文章

  • Spring Data JPA : 查-条件化查询Specification
    条件化查询 用查询条件创建Specification对象参考SpringDataJPASpecification查询使用Criteria查询Criteria查询是面向对象查询,root就是一个对象,root.get("name")就是name属性。可以级联获取属性每一个查询条件创建一个Specification对象,如果有多个查询条件,就把多个Spec......
  • Linux查看硬件信息超强命令sar,以及可视化工具ksar
    一、概述sar(SystemActivityReporter,系统活动情况报告)是Linux下系统运行状态统计工具,可从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。算是一个万能的小能手。二、安装Linux下:#yumin......
  • Linux系统中关闭IPv6的方法
     方法1:修改配置文件在终端中输入以下命令:sudovi/etc/sysctl.conf在文件末尾添加以下语句:net.ipv6.conf.all.disable_ipv6=1net.ipv6.conf.default.disable_ipv6=1保存并关闭文件,然后在终端中输入以下命令重新加载配置文件:sudosysctl-p方法2:使用网络管理工具......
  • linux 显示环境变量的值
    在Linux中,可以使用echo命令来显示环境变量的值。要显示所有环境变量的值,可以执行以下命令:bash printenv或者,你可以使用env命令来显示当前会话中的所有环境变量:bash env如果你只想显示某个特定的环境变量,可以使用echo命令加上$符号来获取其值。例如,要显......
  • 【已应用】落地项目中使用的JdbcTemplate-包含application.properties配置 【JdbcTemp
    JdbcTemplatedemo2:是某落地项目中使用的JdbcTemplate。是来检测JdbcTemplate合规性。包含JdbcTemplate封装、sql操作、application.properties数据连接配置等。GitLab项目地址:liuguiqing/JdbcTemplateDemo2·GitLab相关截图:   ......
  • 第8周linux课堂总结
        这一周的linux课程我们学习了ACL权限,ACL权限和UGO权限的区别在于ACL权限更加精确。使用命令getfacl可以查看ACL权限,setfacl命令可以设置ACL权限,对每一个文件或目录进行更精确的权限设置,添加-m参数可以修改当前文件的ACL权限,修改某一普通用户下的某一文件的读写权限,当......
  • Linux/Centos文件授权用户文件夹权限介绍
    一、Linux文件权限介绍在Linux中,一切皆为文件(目录也是文件),每个文件对用户具有可读(read)、可写(write)、可执行(excute)权限。目录的执行操作表示是否有权限进入该目录并操作执行该目录,文件都会从属于一个用户和一个用户组,每个文件针对文件的拥有者、所属组以及其他用户组具有特定权限......
  • 关于 linux uimage 的理解
    网上的资料:      ......
  • ☀️Navicat连接Oracle:'ORA-12638: Credential retrieval failed' 解决办法
    前言:我们在使用Navicat连接Oracle数据库的时候,需要oci.dll动态链接库,Navicat16在安装时候已经自带了。我在之前使用一直好好的,就今天需要连一个新项目的Oracle,报错了:ORA-12638:Credentialretrievalfailed',如下:解决:通过同事口中得知,要连接的Oracle版本是:12c(12.2.0.1.0),而我之前......
  • Physical Education Lessons
    PhysicalEducationLessons题意:Alex高中毕业了,他现在是大学新生。虽然他学习编程,但他还是要上体育课,这对他来说完全是一个意外。快要期末了,但是不幸的Alex的体育学分还是零蛋!Alex可不希望被开除,他想知道到期末还有多少天的工作日,这样他就能在这些日子里修体育学分。但是在这里计算......