zoukankan      html  css  js  c++  java
  • 【Linux】grep命令

    1.用途

    grep允许对文本进行模式查找,如果找到匹配模式,grep打印包含模式的所有行。

    2.全称

    grep全称是Global Regular Expression Print

    3.参数

    以下是常用的grep参数:

    -c :只输出匹配行的计数

    -i :不区分大小写(只适用于单字符)

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

    -l :查询多个文件时只输出包含匹配字符的文件名

    -n :显示匹配行及行号

    -s :不显示不存在或无匹配文本的错误信息。

    -v :显示不包含匹配文本的所有行

    一般格式为:

    grep [选项] 基本正则表达式 [文件] (这里的正则表达式可为字符串)

    4.特别说明

    (1)在grep命令中输入字符串参数时,最好将其用双引号括起来。例如:"Myname",这样做主要有2个原因:

    • 防止被误解为shell命令
    • 可以用来查找多个单词组成的字符串

    (2)在调用变量时候,也可以用双引号,诸如:grep "$var" 文件名 ;如果不这样,不会返回结果。

    (3)在调用匹配模式的时候,使用单引号

    5.案例说明

    (1)查询多个文件

    在当前目录下所有.dat文件查找字符串"20190101 GT"

    $ grep "20190109 GT" *.dat

    (2)行匹配

    $ grep –c "Jack" file.txt

    返回值为匹配到的行数,假如返回2,则表示有2行记录被匹配到。

    (3)行数

    $ grep –n "Jack" file.txt

    第一列输出匹配到的记录在文件file.txt中的行数

    (4)显示非匹配行

    $ grep –v "Jack" file.txt

    显示不包含Jack这个字符串的行

    6.具体案例

    案例一:从stdin中匹配字符girl

    [root@localhost test]# echo -e "this is my girl friend" | grep girl

    案例二:也可以从多个文件中搜索

    [root@localhost test]# grep '^Th' file01.txt file02.txt file03.txt

    image


    案例三:只输出匹配到的部分

    [root@localhost test]# grep -o '^Th' file01.txt

    image


    案例四:统计文本file01.txt中包含Th开头的字符串的行数

    [root@localhost test]# grep -c '^Th' file01.txt
    2

    案例五:统计匹配项的数量

    [root@localhost test]# echo -e "1,23,3,hello, My name is Alice" | grep -o  "[0-9]" | wc -l
    4

  • 相关阅读:
    hdu 2222 Keywords Search
    Meet and Greet
    hdu 4673
    hdu 4768
    hdu 4747 Mex
    uva 1513 Movie collection
    uva 12299 RMQ with Shifts
    uva 11732 strcmp() Anyone?
    uva 1401
    hdu 1251 统计难题
  • 原文地址:https://www.cnblogs.com/OliverQin/p/9747467.html
Copyright © 2011-2022 走看看