zoukankan      html  css  js  c++  java
  • Linux 三剑客(1)- grep

    作用

    在文件或标准输入中,通过正则表达式查找对应的内容

    语法格式

    grep [选项]... PATTERN [FILE]...

    grep的常用选项参数

    参数选项 描述
    -G 默认值
    -F 相当于使用fgrep,但必须用 -F
    -E 相当于使用egrep,但必须用 -E
    -V 打印 grep 的版本号

    -E 的栗子

    前提

    当 grep 想同时过滤多个条件或操作

    错误写法

    默认不支持多条件匹配

    ps -ef | grep "java|tomcat"

    正确写法

    ps -ef | grep -E "java|tomcat"

    匹配控制选项参数

    参数选项 描述
    -e PATTERN 来进行匹配操作
    -f 从文件中取得 PATTERN
    -i 忽略大小写
    -v 反转匹配,选择没有被匹配到的内容
    -w 匹配整词,精确地单词,单词的两边必须是非字符符号(即不能是字母数字或下划线)
    -x 仅选择与整行完全匹配的匹配项
    --line-buffered 有一个文件是动态的,它不断地添加信息到文件的尾部,而你想要输出包含某些信息的行。即持续的grep一个动态的流

    -e 的栗子

    当你有多个正则表达式想同时匹配时,可以用 -e,一个 -e 接一个正则表达式,它们是或的关系,不是与的关系

    -f 的栗子

    -i 的栗子

    -v 的栗子

    -w 的栗子

    -x 的栗子

    一般输出控制选

    参数选项 描述
    -s 禁止显示错误信息
    -q 安静模式,不会有任何输出内容,查找到匹配内容会返回0,未查找到匹配内容就返回非0
    -m num 匹配 num 次后停止
    -c 匹配成功数量
    -l 列出匹配成功结果的文件来源(标准输入或文件名称)
    -H 给每一个匹配结果打印来源(标准输入、文件名)

    -q

    目前没发现有什么用

    -m 的栗子

    -c 的栗子

    -l 的栗子

    ls 输出的内容就是标准输入

    输出控制参数讲解

    参数选项 描述
    -b 输出的同时打印字节偏移
    -n 输出的同时打印行号
    -H 给每一个匹配结果打印来源(标准输入、文件名)
    -h 输出是不显示来源(默认)
    -o 只显示匹配 PATTERN 的部分

    -b 的栗子

    -n 的栗子

    -H 的栗子

    因为结果都来源于 ls 的标准输入,所以显示标准输入,如果是来源于某个文件则会显示文件名

    -o 的栗子

    上下文线控制选项

    参数选项 描述
    -A num 匹配到搜索到的行以及该行下面的num行
    -B num 匹配到搜索到的行以及该行上面的num行
    -C num 匹配到搜索到的行以及上下各num行

    备注

    感觉就是为了好看而已

    -A 的栗子

    -B 的栗子

    -C 的栗子

    文件和目录选项

    参数选项 描述
    -a 不忽略二进制的数据
    -d 当要查找的是目录而非文件时,必须使用这项参数
    -r 以递归方式读取每个目录下的所有文件; 这相当于-d recurse选项。

    -r 的栗子

    巨常用的语法

    重点

    写的正则表达式最好用 '' 包起来,当碰到需要转义符的时候才会生效

    查找指定进程

    ps -ef | grep java

    查找指定进程并统计数量

    ps -ef | grep -c java

    从文件中查找关键字

    grep src test.txt

    从文件中查找关键字并输出它的行号

    grep -n src test.txt

    从多个文件中查找关键字

    grep src src.txt src1.txt src2.txt

    从文件中查找关键字后,再从结果中找到指定关键字

    cat src.txt | grep -v s | grep -w lib

    找出文件中的空白行

    grep -n ^$ test.txt

    显示当前目录下面以 .txt 结尾的文件中的所有包含每个字符串至少有4个连续小写字符的字符串的行

    grep -n '[a-z]{4}' *.txt

    待补充

  • 相关阅读:
    天梯赛5-12 愿天下有情人都是失散多年的兄妹 【dfs】
    poj2718 Smallest Difference【贪心】
    HDU problem 5635 LCP Array【思维】
    codeforces 782C Andryusha and Colored Balloons【构造】
    HDU 4278 Faulty Odometer【进制转换】
    codeforces B. The Meeting Place Cannot Be Changed【二分】
    POJ 3264 Balanced Lineup 【线段树】
    HDU 1850
    CodeForces-714C
    HDU Problem 1247 Hat's Words 【字典树】
  • 原文地址:https://www.cnblogs.com/poloyy/p/14248101.html
Copyright © 2011-2022 走看看