linux命令:grep浅谈

简介:


 grep命令简介:

       此个命令根据模式,搜索文本,并将符合模式的文本行显示出来。包含匹配,

     不是完全匹配。也就是说只要某一行有一部分匹配到就显示出来。

    *延伸阅读:模式(pattern)是指文本字符和正则表达式的元字符组合而成匹配条件

1.命令格式:egrep=grep -E  (fgrep快速搜索本文中匹配到的字符行,但是fgrep不支持         正则表达式,其他用法与grep一样。)

grep [OPTIONS] PATTERN [FILE...]

 grep -i 'root' /etc/passwd

2.命令功能:

对文本进行搜索,将符合模式的文本行显示出来。

3.命令参数:

  -i 查找时忽略大小写

 --color 模式中关键字以高亮有颜色显示出来

 -v 显示没有被模式匹配的选项

 -o 只显示被模式匹配的字符串

 -E 使用扩展正则表达式

 -A # 表示显示被模式匹配到的行,并显示后#行  #指具体数字 -A after后面的

 -B # 表示显示被模式匹配到的行,并显示前#行  #指具体数字 -B before前面的

 -C # 表示显示被模式匹配到的行,并显示前后各#行 #指具体数字

支持正则表达式:

  .:匹配任意单个字符

  *:匹配其前面的字符任意次(包括0次)

  .*:匹配任意长度的任意字符

  []:匹配指定范围内的任意单个字符

  [^]:匹配指定范围外的任意单个字符

  [:digit:]数字  [:lower:]小写字母  [:upper:]大写字母  [:punct:]字符/符号  

  [:space:]空格  [:alpha:]所有字母  [:alnum:]所有字母和数字  

   \?:匹配其前面的字符0次或1次  \表示转义

   \{m,n\}:匹配前面的字符至少m次,最多n次

   \{m,\}:匹配前面的字符至少m次

   \{0,n}:匹配前面的字符,最多n次

    \{n}:匹配前面的字符n次

支持扩展正则表达式:-E选项  grep -E = egrep 扩展正则表达式

  | : 或者表示符  比如a|bc|ca  表示a或者bc或者ca

  .:匹配任意单个字符

  []:匹配指定范围内的任意单个字符

  [^]:匹配指定范围外的任意单个字符

      *:匹配其前面的字符任意次(包括0次)

  ?:匹配其前面的字符0次或者1次

   +:匹配其前面的字符至少1次(相当于正则表达式中\{1,\})

  {m,n}: 直接使用大括号不用使用转移符\,表示至少m次,最多n次

   {n}:匹配前面的字符n次

位置锚定:(正则表达式和扩展正则表达式一样)

^: 锚定行首,此字符后面的任意内容必须出现在行首

$: 锚定行尾,此字符前面的任意内容必须出现在行尾

^$: 空白行

\<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现

\>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现 

正则表达式分组符号:(扩展正则表达式不用转义符直接为())

\(\)把括号内的当着一个整体

       \(ab\)把ab当着一个整体

 后向引用(扩展正则表达式一样)

       \1: 引用第一个左括号以及与之对应的右括号所包括的所有内容

       \2:引用第二个左括号以及与之对应的右括号所包括的所有内容

       \3:引用第三个左括号以及与之对应的右括号所包括的所有内容

      \n:引用第n个左括号以及与之对应的右括号所包括的所有内容

4.命令实例:

  1、查找包含某些字符的所有行

    grep "root" /etc/passwd

[root@xuelinux ~]#  grep "root" /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

2、grep --color 以高亮显示查找到的字符

可以把别名写入配置文档 vim ~/.bashrc1

# .bashrc

   # User specific aliases and functions 

    alias rm='rm -i'

    alias cp='cp -i'

    alias mv='mv -i'

    alias grep='grep --color'

  3、grep '\([0-9]\).*\1$' /test/test1.txt 查找test1.txt文档中必须以前面第一个数字结尾的行

[root@xuelinux test]# grep '\([0-9]\).*\1$' /test/test1.txt 

2who are you 2

4 youareringt4

5,he is 2tom2

7 eg is over 11

8 thanks you 1and1

[root@xuelinux test]# cat test1.txt 

1,this is helloword!  此处没有以数字结尾

2who are you 2   此处匹配到

3,no 4 is not 2.  此处结尾是以.结尾所以未匹配到

4 youareringt4.   此处结尾是以.结尾所以未匹配到

4 youareringt4   此处匹配到,是以前面出现的数字4结尾

5,he is 2tom2   此处匹配到,是以前面出现的数字2结尾

5,he is 2tom2.   此处结尾是以.结尾所以未匹配到

6 tom is cat4,yes is 4. 此处结尾是以.结尾所以未匹配到

7 eg is over 11.  此处结尾是以.结尾所以未匹配到

7 eg is over 11  此处匹配到,是以前面出现的数字1结尾

8 thanks you 1and1  此处匹配到,是以前面出现的数字1结尾

8、取出本机表示ip地址的相关字符

ifconfig | egrep --color'(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' 

  egrep = grep -E (){3}表示前面括号里面的内容重复3次













本文转自wang650108151CTO博客,原文链接:http://blog.51cto.com/woyaoxuelinux/1862832 ,如需转载请自行联系原作者


相关文章
|
4天前
|
安全 算法 Linux
探索Linux命令gpgv2:安全通信与数据验证的利器
`gpgv2`是GPG的签名验证工具,用于确保文件完整性和来源真实性。基于公钥密码学,支持多种加密算法和OpenPGP标准。通过`--verify`等参数验证签名,例如`gpgv2 --verify signature_file file`。重要注意事项包括保护私钥、定期更新密钥、验证签名来源及使用强密码。在数据安全场景中,`gpgv2`是保障信息安全的利器。
|
4天前
|
安全 Linux 数据处理
深入探索Linux中的gpgsplit命令
`gpgsplit`是GPG套件的一部分,用于分割大型加密文件或合并加密的OpenPGP消息。它支持ASCII armored和二进制格式,提供按字节数、行数或消息数分割的灵活性,并可合并消息。在处理大型加密文件、安全管理及数据传输中发挥作用。使用时注意保护私钥、备份数据、正确指定格式,并遵循安全实践。示例:使用`--split 10M`将大文件按10MB分割,`cat`多个消息文件并用`gpgsplit --output`合并。
|
4天前
|
Linux 开发者
Linux基础:常用命令及其用途
这些命令只是Linux命令行的冰山一角,但它们构成了日常工作的基础。通过掌握这些基本命令,你可以更有效地利用Linux系统的强大功能。随着你对这些基础命令的熟练应用,你会发现自己能够更快地完成任务并解决问题。
12 2
|
1天前
|
算法 网络协议 Linux
探索Linux命令idn:处理国际化域名
`idn`命令在Linux中用于处理国际化域名,转换成ASCII兼容的ACE格式或反之。它支持Punycode算法,提供命令行接口及多种参数,如`-a`转ASCII,`-d`转回国际化域名。示例包括将`xn--zhonggu-wu9d.com`转换。使用时注意有效输入,考虑版本兼容性,并可与其他工具结合使用。
|
1天前
|
Linux 数据处理 数据库
深入解析Linux命令id:理解用户身份与权限
`id`命令在Linux中用于显示用户身份(UID, GID和附加组)。它查看系统用户数据库获取信息。参数如`-u`显示UID,`-g`显示GID,`-G`显示附加组,结合`-n`显示名称而非ID。用于确认命令执行者身份,确保权限正确。在脚本中使用时注意权限管理,遵循最小权限原则。
|
1天前
|
Linux 数据处理
Linux命令iconv:字符编码转换的利器
`iconv`是Linux下的字符编码转换工具,支持多种编码如UTF-8、ISO-8859-1等。它允许用户指定源(-f)和目标(-t)编码,转换文件或输出到指定文件(-o)。使用`-l`可列出所有支持的编码。示例:将UTF-8文件转为ISO-8859-1编码:`iconv -f UTF-8 -t ISO-8859-1 input.txt -o output.txt`。在转换前确认源编码,测试小样本,备份数据,并注意特殊字符处理。
|
1天前
|
网络协议 Linux 网络安全
Linux命令hostnamectl:掌握系统主机信息的利器
`hostnamectl`是Linux系统管理的关键工具,用于查看和设置主机名、内核信息等。它集成在`systemd`中,通过修改配置文件交互。命令特点包括综合显示多种信息、简单语法和设置功能。例如,`hostnamectl status`显示系统详情,`sudo hostnamectl set-hostname NEWHOSTNAME`用于更改主机名。使用时注意权限、备份配置、更新网络和重启相关服务,避免频繁更改。
|
1天前
|
存储 Ubuntu 网络协议
Linux命令hostname:探索你的主机名
`hostname`命令在Linux中用于显示或设置主机名,它是系统管理和网络配置的关键工具。简单易用,可查看(`hostname`)或通过参数如`-s`设置短主机名,`-F`指定主机名文件。示例:查看主机名、使用`hostnamectl`或直接`hostname`命令设置新主机名,以及将新名写入`/etc/hostname`。注意,更改可能需管理员权限,并影响网络配置。
|
1天前
|
安全 Linux 数据处理
Linux hostid命令:主机标识符的奥秘
Linux hostid命令:主机标识符的奥秘
|
2天前
|
Linux Unix Windows
【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(二)
【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(二)