美文网首页
80.读鸟哥私房菜1|grep+正则表达式

80.读鸟哥私房菜1|grep+正则表达式

作者: 人生玩家Eli | 来源:发表于2022-11-01 21:06 被阅读0次
    cover20220907.png

    说来惭愧,从年初开始看鸟哥的私房菜,当时觉得要学的东西好多呀,好想都学会呀!我要这两个月学这个,下两个月学那个!

    结果到现在还没看完一半。

    grep用法(后面会通过grep命令来练习正则表达式)

    grep [-A] [-B] [--color=auto] '搜寻字串' filename

    • -A: 后面可加数字, after的意思,除了列出该行外,后面n行也列出来
    • -B: 后面可加数字, befer的意思,....
    • -n: 显示行号
    • -i: 忽略大小写
    • -v: 反向选择,即查找不包含'搜寻字串'的行
    • -c: 计算找到的次数
    • -a: 将binary文件以text文件的方式查找
    • -r: 递归查找(用来查找文件夹下的所有文件)

    grep+正则表达式的例子

    1.查找字符串

    • grep -n 'the' regular_express.txt

    2.中括号

    • grep -n 't[ae]st' regular_express.txt 可以查到"test"和"tast"
    • grep -n '[^g]oo' regular_express.txt 查找oo,但oo前面不能是g
    • grep -n '[^abcdefg....z]oo' regular_express.txt oo前不能是小写字母,但这样写太麻烦了
    • grep -n '[^a-z]oo' regular_express.txt oo前不能是小写字母,可以这样写
    • grep -n '[a-zA-Z0-9]' regular_express.txt 查找字母数字

    3.行首行尾字符^$

    • grep -n '^the' regular_express.txt 查找以the开头的行
    • grep -n '^[a-z]' regular_express.txt 查找以小写字母开头的行
    • grep -n '^[^a-zA-Z]' regular_express.txt 不要以字母开头的
    • grep -n '\.$' regular_express.txt 查找行尾是点的行
    • grep -n '^$' regular_express.txt 查找空白行

    4.通配符号

    • .表示任意1个字符
    • *表示重复前一个字符至少0次
    • grep -n 'g.*g' regular_express.txt g开头g结尾
    • grep -n '[0-9][0-9]*' regular_express.txt 找出任意数字

    5.连续字符

    • grep -n 'o\{2\}' regular_express.txt 查找oo
    • grep -n 'go\{2,5\}' regular_express.txt 查找g后面有2到5个o的行

    6.延伸用法

    • grep -E // 这样可以使用延伸的正则表示法

    • +: 重复前一个字符至少1次

    • ?: 重复前一个字符0次or1次

    • |: 表示或

    • (): 多个字符括起来表示一组

    • grep -E "g(oo|la)?d" regular_express.txt 查找good/glad/gd

    应用

    因为我的所有笔记都以纯文本的形式存放在linux系统上,所以下面的命令对于我来说还是挺实用的。

    1.查找指定目录下所有文件的内容

    grep -nr "xxx" 目录名

    2.查找当前目录下文件的个数(不包括子目录)

    ls -l | grep "^-" | wc -l 在"ls -l"列出的结果中,文件以"-"开头,"wc -l"用来统计行数

    3.查找当前目录下文件的个数(包括子目录)

    ls -lR | grep "^-" | wc -l

    4.查找当前目录下文件夹的个数(包括子目录)

    ls -lR | grep "^d" | wc -l 在"ls -l"列出的结果中,文件夹以"d"开头

    相关文章

      网友评论

          本文标题:80.读鸟哥私房菜1|grep+正则表达式

          本文链接:https://www.haomeiwen.com/subject/slqstdtx.html