Linux中grep的常用方法

grep

1、介绍

         在Linux中grep命令用于查找文件里符合条件的字符串。

         grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。

2、语法

 grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>]

3、常用参数

●-E : 开启扩展(Extend)的正则表达式。

●-i : 忽略大小写(ignore case)。

●-v : 取反(invert),只打印没有匹配的,匹配到的不进行打印

●-n :显示行号

●-w : 被匹配的文本只能是单词,而不能是单词的某一部分,例如文本中有liker,而我只进行搜寻like,就可以用-w选项来避免匹配liker。

●-c : 显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示多少行没有被匹配到。

●-o : 只显示被模式匹配到的字符串。

●--color :将匹配到的字符串以颜色高亮显示。

●-A n : 显示匹配到的字符串所在的行及其后n行,after

●-B n : 显示匹配到的字符串所在的行及其前n行,before

●-C n : 显示匹配到的字符串所在的行及其前后各n行,context

4、匹配字符

● . : 任意一个字符。

●[abc] : 表示匹配一个字符,这个字符必须是abc中的一个。

●[a-zA-Z] :表示匹配一个字符,这个字符必须是a-z或A-Z这52个子母中的一个。

●[^123] : 匹配一个字符,这个字符是除了1,2,3以外所有的字符。

    对于一些常用的字符集,系统也对此做了定义

●[A-Za-z] 等价于 [[:alpha:]]

●[0-9] 等价于 [[:digit:]]

●[A-Za-z0-9] 等价于 [[:alnum:]]

●tab , space 等价于 [[:space:]]

●[A-Z] 等价于 [[:upper:]]

●[a-z] 等价于 [[:lower:]]

●标点符号 [[:punct:]]

5、匹配次数:

●\{m,n\} : 匹配其前面出现的字符至少m次,最多n次。

●\? : 匹配其前面出现的内容任意次,等价于\{0,\}。

●* : 匹配其前面出现的内容任意次,等价于\{0,\},所以”.*”表述任意字符任意次,即无论什么内容都会进行匹配。

6、位置锚定

● ^ : 锚定行首

● $ : 锚定行尾。技巧:”^$”用于匹配空白行。

●\b或\< : 锚定单词的词首。如”\blike”不会匹配alike,但是会匹配liker。

●\b或\> : 锚定单词的词尾。如”\blike\b”不会匹配alike和liker,只会匹配like

●\B : 与\b的作用相反。

实例:

<1>、在/etc/passwd文件中找出以ro开头的行。

grep "^ro" /etc/passwd

<2>、在/etc/passwd文件中找出以sh词首开头的行。

grep "\<sh" /etc/passwd

<3>、在/etc/passwd文件中找出以sh词尾结尾的行。

grep "\Bsh\b" /etc/passwd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: grep 命令用于在文件搜索指定的字符串。它可以帮助您查找文件的特定内容,以便进行更深入的分析。使用 grep 命令的基本语法如下:grep [options] pattern [files] 例如,要在文件 test.txt 搜索字符串 “Hello”,可以使用以下命令:grep Hello test.txt ### 回答2: grepLinux系统常用的文本搜索工具,用于在文件查找特定的字符串或模式。它的常见用法格式为: grep [选项] [模式] [文件名] 选项是可选的,可以根据具体需求来使用。常用的选项有: - -i:忽略大小写,在搜索时不区分大小写。 - -r:递归搜索,对指定目录下的所有文件进行搜索。 - -l:只列出包含匹配模式的文件名,而不显示匹配的具体内容。 - -n:显示匹配行的行号。 - -v:只显示不匹配模式的行。 模式是要搜索的字符串或匹配模式,可以使用简单的字符串作为模式,也可以使用正则表达式。 文件名是要进行搜索的文件或目录名。如果没有指定文件名,则grep默认从标准输入读取数据进行搜索。 下面是几个常见的例子: 1. grep 'hello' file.txt 在file.txt文件搜索包含字符串"hello"的行,并将匹配的行输出。 2. grep -i 'hello' file.txt 在不区分大小写的情况下,搜索file.txt文件包含字符串"hello"的行。 3. grep -r 'hello' dir/ 递归搜索dir目录下的所有文件,查找包含字符串"hello"的行。 4. grep -l 'hello' file1.txt file2.txt 只列出file1.txt和file2.txt包含字符串"hello"的文件名。 5. grep -n 'hello' file.txt 在file.txt文件搜索包含字符串"hello"的行,并显示匹配行的行号。 以上是grep命令的一些常用用法,可以根据具体的需求和场景来调整使用。 ### 回答3: grep命令是Linux系统非常常用的文本搜索工具,它能够基于给定的模式搜索指定文件的内容。下面是grep命令的使用方法。 基本语法:grep [选项] [模式] [文件] 选项: - -i,忽略大小写 - -v,反向匹配,显示不匹配的内容 - -r,递归搜索子目录的文件 - -l,只显示包含匹配内容的文件名 - -n,显示匹配内容所在行的行号 - -c,显示匹配的行数 - -w,匹配整个单词而不是部分匹配 - -A <num>,显示匹配内容后的 <num> 行 - -B <num>,显示匹配内容前的 <num> 行 - -C <num>,显示匹配内容前后的 <num> 行 模式: 在grep命令,可以使用多种不同的模式,模式可以是一个普通字符串、正则表达式或者文件。 示例: 1. 在文件 file.txt 搜索关键词 "hello",并显示匹配的行: ``` grep "hello" file.txt ``` 2. 在文件夹 /tmp 递归搜索包含关键词 "world" 的文件,并显示匹配的文件名: ``` grep -r -l "world" /tmp ``` 3. 在文件 file.txt 搜索以字母 "a" 开头的单词,并显示匹配的行及行号: ``` grep -i -n "\<a\w*" file.txt ``` 总结:grep命令是一种功能强大的文本搜索工具,可以根据给定的模式在指定文件搜索内容。通过掌握grep命令的基本语法和常用选项,可以快速准确地搜索和过滤文件的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值