linux里双条件筛选怎么做?_linux用grep筛选待双引号内容 - CSDN
  • cat log.txt | grep 条件; cat log.txt | grep 条件一 | grep 条件二; cat log.txt | grep 条件一 | grep 条件二 | grep 条件三;

    cat log.txt | grep 条件;
    cat log.txt | grep 条件一 | grep 条件二;
    cat log.txt | grep 条件一 | grep 条件二 | grep 条件三;

    展开全文
  • linux命令之筛选文件内容(sed命令)    在linux系统中,可能有这样的需求,比如查看某个文件中含有某些字符的内容。比如,日志文件中,只要含有error 相关的。 可以使用如下命令: 1、根据字符串内容筛选 sed -n ...

    linux命令之筛选文件内容(sed命令)

       在linux系统中,可能有这样的需求,比如查看某个文件中含有某些字符的内容。比如,日志文件中,只要含有error 相关的。
    可以使用如下命令:

    1、根据字符串内容筛选
    sed -n "/error/p" logs.log
    

       注意以上/error/p 中的p 必须要带着,后边的logs.log 是一个文件,输入上边的命令,则会打印出只含有error 的内容。

    下边用个简单的例子:

      比如某个文件中内容如下:

    192.168.1.168
    xshell
    1911919229
    Amazing
    

      通过输入如下命令:

    sed -n "/192.168/p" file5.sh
    

      最后的结果如下图所示:

    在这里插入图片描述
    操作起来非常方便。

    但是请注意:(2018-11-09补充)

       但是有这种情况,大家需要注意一下,比如下边的内容:

    [root@localhost sed]# cat sed.txt
    192.168.1.2
    192.168.1.3
    192.168.1.4
    192.168.1.5
    121212221
    

      现在要以如下的规则筛选文本:

    sed -n "/1.2/p" sed.txt
    

    执行完之后,会出来下边这样的情况,如下图:
    在这里插入图片描述
      第一次这样用的时候,我懵了半天,后来我才知道,原来这个. 在linux正则里边是任意字符,难怪会出来这样的结果。请大家注意一下,如果你确实想输出192.168.1.2 ,那就可以这么写:

    sed -n "/1.2$/p" sed.txt
    

       即多加一个结束符号$

    2、根据行号

      还有根据行号筛选如下:

     sed -n "2,3p" file5.sh
    

      这样即是返回第 23 行的数据,如下:

    [root@localhost ~]# sed -n "2,3p" file5.sh
    xshell
    1911919229
    

    其他sed命令用法可以看这个文章

    sed命令用法

    展开全文
  • Linux日志筛选命令

    2017-12-11 17:52:38
    下面罗列的这些基本命令,很有用,对于查询线上线下问题都非常有用的,不妨学习一下哈。 先必须了解两个最基本的命令: tail -n 10 test.log 查询日志尾部最后10行的日志; tail -n +10 test.log 查询10行之后...

    (1)Linux目录操作命令

    cd ..退出当前目录,返回上一级目录;cd / 退出当前目录,返回根目录;

    mkdir命令用于创建一个新的目录;rmdir命令功能删除指定的空目录。

    (2)Linux筛选日志

    下面罗列的这些基本命令,很有用,对于查询线上线下问题都非常有用的,不妨学习一下哈。

    先必须了解两个最基本的命令:

    tail  -n  10  test.log   查询日志尾部最后10行的日志;

    tail -n +10 test.log    查询10行之后的所有日志;

    head -n 10  test.log   查询日志文件中的头10行日志;

    head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

    场景1: 按行号查看---过滤出关键字附近的日志

    因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.

    我是这样做的,首先: cat -n test.log |grep "地形"  得到关键日志的行号

    <3>得到"地形"关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:

    cat -n test.log |tail -n +92|head -n 20

    tail -n +92表示查询92行之后的日志

    head -n 20 则表示在前面的查询结果里再查前20条记录

    场景2:那么按日期怎么查呢?  通常我们非常需要查找指定时间端的日志

    sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

    第二种方式,两个行号之间的命令:

    sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。

    特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.

    关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点,以确保第4步可以拿到日志

    这个根据时间段查询日志是非常有用的命令.

    如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:

    (1)使用more和less命令, 如: cat -n test.log |grep "地形" |more     这样就分页打印了,通过点击空格键翻页

    a.More命令

    more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

    b.Less

    less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。


    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:

    cat -n test.log |grep "地形"  >xxx.txt

    这几个日志查看方法应该可以满足日常需求了.

    grep命令多条件查询

    1、或操作

     grep -E ’123|abc’ filename  // 找出文件(filename)中包含123或者包含abc的行
     egrep ’123|abc’ filename    // 用egrep同样可以实现
     awk ’/123|abc/’ filename   // awk 的实现方式

    2、与操作

    grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

    3、其他操作

    grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
    grep -l pattern files :只列出匹配的文件名,
    grep -L pattern files :列出不匹配的文件名,
    grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
    grep -C number pattern files :匹配的上下文分别显示[number]行

    grep的-A, -B, -C选项分别可以显示匹配行的后,前,后前多少行内容: 

    grep -A 100 'TooManyResultsException' catalina.log.2017-09-25  后

    grep -B 100 'TooManyResultsException' catalina.log.2017-09-25  前

    grep -C 100 'TooManyResultsException' catalina.log.2017-09-25  前后

    grep -C 100 --color 'TooManyResultsException' catalina.log.2017-09-25  带颜色输出

    查询日志特殊场景:

    如果日志非常的多,在短短的一个小时的时间中就有上千条或者上万条数据,仅仅根据条件筛选的话非常麻烦,即使筛选出来也会有很多条数据。如果我们知道该条调用发生的时间,就可以根据日志最前面打印的时间判断出哪些记录符合查询条件。所以,我们可以根据日志的日期作为搜索条件,并且配合grep使用,如下所示:

    sed -n '/2017-03-08 15:42:03/,/2017-03-08 15:42:05/p' dubbo-access-consumer.2017-03-08.log | grep countOrgOrder

    我们可以使用sed命令的查询模式:

    使用模式进行查询
         [root@localhost ruby] # sed -n '/ruby/p' ab    #查询包括关键字ruby所在所有行
         [root@localhost ruby] # sed -n '/\$/p' ab        #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义

    查询.bz2类型的日志文件,如下所示:bzgrep 60000000005137 dubbo-access-provider.2017-05-17.log.bz2

    下面介绍一下如何查询筛选服务器上运行的进程:

    1.使用ps命令执行相应操作,如果想查询服务器上所有运行的进程的话,可以使用命令ps aux即可查出;

    2.如果有具体的筛选条件的话,就可以使用ps aux | grep xxx即可;

    3.或者使用命令 ps -ef | grep xxx 也可以完成相应的筛选工作;

    4.终止某个进程的命令 kill -9 XXXXX     XXXXX为上述查出的序号  如: 19979线程终止为: kill -9 19979 

    展开全文
  • Linux环境下,利用ps,kill等命令批量关闭符合筛选条件的进程

    在做项目的时候,由于情况要求,需要把服务器上符合某一条件的进程全部kill掉,但是又不能使用killAll直接杀掉某一进程名称包含的所有运行中的进程(即我们可能只需要杀掉某一类含有特定参数命令的进程)。
    具体命令参考:
    ps -ef | grep test | grep -v grep | awk '{print $2}' | xargs kill -9
    其中:
    |管道符,用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
    ps命令用来列出系统中当前运行的进程, ps -ef显示所有进程信息,联通命令行。
    grep命令用于过滤/搜索特定字符,grep test在这里为搜索过滤所有含有‘test’名称的进程
    grep -v grep-v 显示不包含匹配文本的所有行,在这里为筛选出所有不包含grep名称的进程,对上一步的进程再做一次筛选(因为ps -ef列出了所有的命令,包括命令行)
    awk在文件或字符串中基于指定规则浏览和抽取信息;把文件逐行读入,以空格为默认分隔符将每行切片,然后再进行后序处理。这里利用awk '{print $2}'将上一步中过滤得到的进程进行打印,$2表示打印第二个域(PID,进程号) $0表示所有域,$1表示第一个域,$n表示第n个域。
    xargs命令是给命令传递参数的过滤器,善于把标准数据数据转换成命令行参数。在这里则是将获取前一个命令的标准输出然后转换成命令行参数传递给后面的kill命令。
    kill -9强制关闭进程。
    此外,也有使用cut命令进行处理的,参考如下:
    ps -ef | grep test | grep -v grep | cut -c 9-15 | xargs kill -9
    cut -c 9-15仅显示第9-15个字符(即PID,进程号)

    展开全文
  • 转自:https://blog.csdn.net/weiyichenlun/article/details/59108463在项目的时候,由于情况要求,需要把服务器上符合某一条件的进程全部kill掉,但是又不能使用killAll直接杀掉某一进程名称包含的所有运行中的...
  • 代码: hadoop@Master:~/cloud/adam/xubo/code$ cat a.sh #!/bin/bash #SRR003161h20t1 #samtools view -h -S SRR003161h20t1.sam >SRR003161h20t1.bam #samtools sort -o SRR003161h20t1.sorted.bam SRR003161h20...
  • 上一篇博客,介绍了Linux 抓取网页的实例,其中在抓取google play国外网页时,需要用到代理服务器代理的用途其实,除了抓取国外网页需要用到IP代理外,还有很多场景会用到代理:通过代理访问一些国外网站,绕过被...
  • 上一篇博客讲了Linux抓取网页的方式,有curl和wget两种方式,这篇将重点讲Linux抓取网页的实例——抓取google play全球12国的游戏TOP排名要抓取google play游戏排名网页,首先需要分析网页的特点和规律:1、google ...
  • grep命令用于查找文件符合条件的字符串 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 2、grep命令语法 grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][-e][-f][--...
  • Top命令的配置非常的丰富,可能大家经常实用这个命令的时候,就是简单输入top来使用,不任何配置。 1、监控指定进程 top -p 进程的PID,如 top -p 5677 2、显示完整的command列 输入小写c 3、让每一个进程的显示...
  • 根据目前流行的发行版及国际流行的Linux认证,红帽认证和LPI认证的技能考核目标值得大家借鉴,可以作为自己成长的参考路线,特此分享一下。 参考红帽认证,一名合格的Linux运维工程师至少应该掌握RHCSA及RHCE的全部...
  • plinkSNP筛选和GWAS

    2017-09-21 15:23:42
    plink解决三个小问题
  • linux中awk排除某列输出的实现示例awk是一款不错的工具了我们可以利用awk来进行筛选了下面我们一起来看一篇关于awk排除某列输出一个命令操作方式,具体的如下。awk工具在文本处理上非常强大,我们常用的用法是选择某...
  • Linux实用教程(第三版)

    2020-03-20 13:28:43
    第一章 Linux系统初步了解 本章内容 1.1 Linux系统简介 1.2 Linux系统的特点和组成 1.3 Linux版本介绍 1.4 Red Hat Linux系统概述 1.1 Linux系统简介 1.1.1 什么是Linux 1.1.2 Linux系统的产生 1.1.3 Linux...
  • 我们知道,在Linux系统中,冒号(:)常用来路径的分隔符(PATH),数据字段的分隔符(/etc/passwd)等。其实,冒号(:)在Bash中也是一个内建命令,它啥也不,是个空命令、只起到占一个位置的作用,但有时候确实需要...
  • 去年,受老师和武哥提携,有幸进入校网络中心,刚进去那时就懂点超简单的Linux命令,那天武哥数据库清查,看着他在控制台下一条条命令敲出去,然后ssh终端输出各种看不懂的信息,觉得武哥超厉害,Linux玩得如此...
  • 上一章节讲诉了使用find命令查询...所以针对这个问题,今天我们来学习另外一个能快速查找一个文件的命令,以及这个命令原理是什么,还会教大家如何在linux中查找我们输入命令所在文件路径。 一、locate 命令 : l...
  • linux g++ 链接器

    2016-08-12 15:50:51
    我们都知道,要把源代码变成可以运行的程序,需要经过编译、链接等步骤。...链接究竟了什么?怎么的? 这就是我们今天的主题。 基础概念一个实验请看这样四个文件: head.h #include using namespace std; v
  • 最近遇到一个问题,要导出一个系统的日志,但是日志文件实在是太大了,导出知道在本地根本无法打开,所以想到通过命令来把需要的时间段的日志截取后再导出。sed -n '/开始时间/,/结束时间/' 被截取日志原文件名称&...
1 2 3 4 5 ... 20
收藏数 22,230
精华内容 8,892
关键字:

linux里双条件筛选怎么做?