• 【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

  • 相关阅读:
    第十一周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第六周课程总结&试验报告(四)
    课程总结
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周
    第十二周学习总结
  • 原文地址:https://www.cnblogs.com/OliverQin/p/9747467.html
Copyright © 2020-2023  润新知