利用grep与正则表达式快速精确实现文本通配

什么是grep?

grep (global search regular expression(RE) and print out the line,其全称意义为全局搜索正则表达式,并打印出来。是一种功能强大,简单易用的文本搜索工具。它能根据其后指定的匹配方式匹配出文件中的文本,并把匹配到的那整行都打印出来。

在Linux中grep家族有三个成员,分别是grep,egrep和fgrep,其使用方法略有不同,其中egrep是grep的扩展,而fgrep则是在进行文本通配时把所有的字母都当做单词来处理,让正则表达式中的元字符失去意义,当成普通单词来处理。在使用的时候可以用grep后接-E或者-F选项实现egrep和fgrep的功能。

grep的常用选项和一般用法。

grep的常常用选项有以下几个

-v:反向显示查找文本,即匹配到的反而不显示,显示未被匹配到的字符。

例:正常匹配文件test中的“hello“字符串

[[email protected] tmp]# grep "hello" test

hello

加-v选项

[[email protected] tmp]# grep -v "hello" test

this is a test txt

welcome to use grep

-i:文本匹配中忽略大小写

[[email protected] tmp]# grep -i "HOW ARE YOU" test

HOW ARE YOU

how are you

-n:在输出文本时显示其行号

[[email protected] tmp]# grep -n "how are you" test

5:how are you

-c:显示被匹配到的次数

[[email protected] tmp]# grep -ic "how are you" test

2

--color=auto:用此选项显示被匹配到的字符串

[[email protected] tmp]# grep --color=auto "how" test

how are you

其他选项不再赘述,可通过查看grep帮助文档查看。

grep结合正则表达式实现快速准确匹配文本。

结合grep与正则表达式,能快速准确地找到所希望匹配到的字符串和行,加快工作效率。

例1:找出/etc/passwd文件中root所在的行

[[email protected] tmp]# grep --color=auto "^root" /etc/passwd

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

例2:找出/tec/passwd文件中的系统账号,显示其用户名和UID

[[email protected] tmp]# cut -d: -f1,3 /etc/passwd|grep --color=auto "\<[1-4[0-9][0-9]\>"

uucp:10

operator:11

games:12

gopher:13

ftp:14

nobody:99

dbus:81

vcsa:69

haldaemon:68

gdm:42

ntp:38

apache:48

postfix:89

sshd:74

tcpdump:72

named:25

例3:取字符串/etc/sysconfig/的基名

[[email protected] tmp]#  echo /etc/sysconfig |grep -E -o "/[[:alpha:]]*$" | grep -o -E "[[:alnum:]]*"

sysconfig

例4:匹配出testip文件中合理的ip地址

[email protected] tmp]# cat testip

192168.0.1

192.155.234.2

256.234.245.654

123.234.212.12

1.0.0.1

[[email protected] tmp]# cat testip |grep  --colorauto -E "(^\b[1-9]\b|^\b[1-9][0-9]\b|^\b1[0-9][0-9]\b|^\b2[1-3[0-9])\.(\b[0-9]\b|\b[1-9][0-9]\b|\b1[0-9][0-9]\b|\b2[0-4][0-9]\b|\b25[0-5]\b)\.(\b[0-9]\b|\b[1-9][0-9]\b|\b1[0-9][0-9]\b|\b2[0-4][0-9]\b|\b25[0-5]\b)\.(\b[0-9]\b|\b[1-9][0-9]\b|\b1[0-9][0-9]\b|\b2[0-4][0-9]\b|\b25[0-5]\b)$"

192.155.234.2

123.234.212.12

1.0.0.1

时间: 2024-08-08 01:27:12

利用grep与正则表达式快速精确实现文本通配的相关文章

Linux系统的grep以及正则表达式浅析!

grep命令可以从文本中或者通过管道送过来的字符流中或一个"-"符号代替文件名来搜索精确或者模糊的匹配信息,grep家族有三个命令:grep,egrep,fgrep. grep支持正则表达式匹配查找 egrep支持扩展正则表达式匹配查找 fgrep不支持正则表达式匹配查找 grep命令的格式: grep [OPT] 'PATTERN' FILE PATTERN是所需要匹配的内容 精确匹配中单双引号的含义相同 如果PATTERN是精确匹配(即只有普通字符不包含元字符)且字符串中间不包含空

Linux学习之路-grep和正则表达式的应用

grep和正则表达式的应用 Linux文本处理三剑客:        grep:文本过滤工具:        sed:文本编辑器(行):stream editor        awk:文本报告生成器:Linux上awk的实现为gawk grep: Global search REgular expression and Print out theline. 作用:文本搜索工具,根据用户指定的"模式(pattern)"逐行去搜索目标文本,打印匹配到的行: 模式:由正则表达式的元字符及文

Linux基础之文本处理工具grep及正则表达式(附带egrep与grep的不同)

文本处理工具grep,正则表达式在Linux学习过程中很容易出现困惑与障碍的地方,这里分享下学习这方面内容的一些感受. grep Global search REgular expression and Print out the line 作用:文本搜索工具,根据用户指定的'模式(过滤条件)'对目标文本逐行进行匹配检查:打印匹配到的行: '模式':由正则表达式的元字符及文本字符所编写出的过滤条件. grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS]

【实例】正则表达式利用grep和sed处理日志内容,获取所需的内容

[实例]正则表达式利用grep和sed处理日志内容, 获取所需的内容 app.log文件内容: 2014-09-11 00:00:01,516 INFO [com.tt.bb.thread.Control] - Socket连接:/182.105.83.33:532172014-09-12 10:00:06,555 INFO [com.tt.bb.thread.Control] - Socket连接:/182.113.83.51:53249 2014-09-13 20:00:11,587 INF

linux文本处理杏彩平台出租工具之grep与正则表达式语法

Grep介绍Linux 文本处理三剑客之一,文件过滤工具(另外两剑客为sed:文本编辑工具,awk:文本报告生成器) 拥有着,根据用户指定的"模式"对目标文本逐行进行匹配检查:打印匹配到的行的功能. 使用Grep除了正常的字符使用之外 还可以运用正则表达式字符. Grep的重要命令选项 --color=auto 关键字高亮显示(centos7默认) *-v 关键字 显示不包含关关键字的行,取反 *-i 关键字 忽略关键字的大小写 -n 显示的结果每行前增加行号 -c 仅显示找出的结果的

文本处理工具之grep和正则表达式

grep :是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep命令选项   -m # 匹配#次后停止   -v 显示不被pattern匹配到的行   -i 忽略字符大小写   -n 显示匹配的行号   -c 统计匹配的行数   -o 仅显示匹配到的字符串   -q 静默模式,不输出任何信息   -A # after, 后#行   -B # before, 前#行   -C # context, 前后各#行   -e 实现多个选项间的逻辑or关系 grep –e

grep与正则表达式,grep、egrep和fgrep

grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.awk .sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大:1基础正则表达式grep 工具,以前介绍过.grep -[acinv]   '搜索内容串'   filename-a 以文本文件方式搜索-c 计算找到的符合行的次数-i 忽略大小写-n 顺便输出行号-v

grep ,正则表达式

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包 括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说

Linux &nbsp; &nbsp; grep命令,正则表达式

grep命令及正则表达式 grep命令 grep , egrep , fgrep grep,sed,awk 文本处理三剑客 grep: Global search REgular expression and Print out the line;全面查找正则表达式并将匹配到的行显示出来; 正则表达式 正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用;许多程序设计语言都支持利用正则表达式进行字符串操作; 主流的正则引擎又分为三类:DFA;传统型NFA;POSIX NFA; DFA