2018-08-01 17:12:54 linxc008 阅读数 63

shell命令:grep 强大的查找文本文件中匹配的字符串命令。

详细可见博客:http://man.linuxde.net/grep

2019-01-02 10:42:02 shadow_sam 阅读数 89

grep

作用:使用正则表达式搜索文本。

选项:

-n:显示行号。

-r:递归查找。

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

-i:不区分大小写。

--color=auto:将匹配到的关键词加上颜色。

例子:

grep -snr "str1" path1

"str1":显示含有str1行。

"^str1":显示开头为str1的行。

"str1$":显示结尾为str1的行。

"^str1$":显示只含有str1的行。


find

作用:查找文件,未指定目录时默认为当前目录,且默认遍历所有子目录。

选项:

-name:按文件名查找文件。

-iname:不区分大小写。

-type:按文件类型查找。

例子:

find path1 path2 -name file1:按照文件名精确查找。

find path1 -name "*str":按照关键字模糊查找。

find path1 -type d/f:只列出所有目录/普通文件。

 

 

 

 

2019-09-17 09:47:45 qq_39228454 阅读数 11

1、说明

    grep命令用于搜索文本中符合条件的字符串

2、示例

    实例-1: 在本目录下查找后缀为txt的文件中包含字符串“1896”的行

    

 

    实例-2: 递归查找指定目录下文件中的字符串

     参数:

         -r: 查找指定目录下的文件字符串

    

   

    实例-3: 计算查找结果的行数

        参数:

            -c: 计算行数 

    

    

    实例-4: 对查找字符串不区分大小写

        参数:

            -i: 对查找字符串忽略大小写

    

 

    实例-5: 查找多文件时不显示文件名

        参数:

            -h: 不显示文件名

            -l: 只显示文件名

    

    

    实例-6: 对查找结果取反

        参数:

            -v: 对查找结果取反

    

 

    实例-7: 取相邻行数

        参数:

            -A n: 匹配行和后n行

            -B n: 匹配行和前n行

            -C n: 匹配行和前后n行

    

 

    实例-8: 

        其他参数:

            -n: 对查找结果显示行号

            -f: 在两文件中对比包含的内容(行级对比:一行内容是否在另一文件一行中出现)

    

            

    

 

 

    实例-9:

        

        正则:

        ^: 行首 

        $: 行尾

        *: 多个或一个字符

        .: 一个字符

        .*: 任意字符

        []: 指定范围内的字符           eg: [1-9]1到9之间

        [^]: 指定不在范围的字符         eg: ^[^a]非a开头

        x{m}: 匹配x出现m次

        x{m,}: 匹配x出现m次以上

        x{m,n}: 匹配x出现至少m次,至多n次

2018-05-19 21:16:53 weixin_38176039 阅读数 4945

grep这个命令 ,是一个特别强大的文本搜索工具,而且可以接很多参数,我工作的关系经常要在kernel下搜索关键字

记录一下常用的一些用法吧

1 搜索字符串:

    grep -rn "需要搜索的字符串" ./

解释一下参数 -r : 搜索子目录,即当前./下的所有子目录

                    -n : 打印行号

效果如下 : 

    


2 批量替换文本里的字符串

这个简直是神技啊 , 结合sed命令 可以批量替换文本里面的字符串 , 比如刚才 , 我的I2C驱动的时钟有些配置为200K,有些为100K,有些为400K , 我改动了之后 ,而这些驱动的配置文本加起来有70多个 

我直接运行 sed -i "s/原文本/替换后的文本/g" `grep -rl 原文本 ./`

轻松搞定

参数也解释一下吧 sed 是一个“非交互式”面向字符流的编辑器,还有其他很多强大的用法请自行百度

sed -i : 直接修改文件内容

grep -l : 查找到匹配字符串的文件 (注意, 是含有匹配字符串的文件,也就是含有原文本的文件)


运行结果


2020-01-26 16:41:23 qq_23929673 阅读数 21

-c 输出匹配行的数量相当于wc -l
-i 搜索时忽略大消息
-h 查询多文件时不显示文件名
-l 只列出符合匹配的文件名,而不列出具体的匹配行
-n 列出所有的匹配行,并显示行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整词
-r 递归搜索,不仅搜索当前工作目录,而且搜索子目录
-q 禁止输出任何结果,以退出状态表示搜索是否成功
-b 打印匹配行距头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词距文件头部的偏移量,以字节为单位

grep certificate 00.pem 08.pem grep的多文件查询
grep certificate 0?.pem 指定多个文件时可以使用通配
grep ^- *.pem grep查找以-符号开头的行
grep -c ^$ 00.pem 搜索空白行
grep -c [$] 00.pem 搜索非空白行,只打印行数
grep ^/…/ 00.pem 匹配以/开头中间任意四个字符,最后任为/的字符串的行
grep ^-*B 00.pem 匹配以-开头,重复-任意次数,然后是B的行

[:upper:] 表示大写字母[A~Z]
[:lower:] 表示小写字母[a~z]
[:digit:] 表示阿拉伯数字[0~9]
[:alnum:] 表示大小写字母和阿拉伯数字
[:space:] 表示空格或Tab键
[:alpha:] 表示大小写字母
[:cntrl:] 表示Ctrl键
上述POSIX字符类的使用方法
grep 1 00.pem 搜索以大写字母开头的行

egrep ^-+b 00.pem 意义为查找以-符号开头,重复任意次然后是B的行
egrep ^-*b 00.pem 意义为查找以-符号开头,重复0次或任意次然后是B的行


  1. [:upper:] ↩︎

Linux-grep

阅读数 424

没有更多推荐了,返回首页