`

Linux shell grep指令

 
阅读更多

grep一般格式为:
grep [选项]基本正则表达式[文件]
这里基本正则表达式可为字符串。

单引号双引号
在g r e p命令中输入字符串参数时,最好将其用双引号括起来。
在调用模式匹配时,应使用单引号。

例如:“m y s t r i n g”。这样做有两个原因,一是以防被误解为s h e l l命令,二是可以用来查找多个单词组成的字符串。
在调用变量时,也应该使用双引号,诸如: g r e p“$ M Y VA R”文件名,如果不这样,将没有返回结果。

常用的g r e p选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。

举例:
1、查询多个文件
在所有文件中查询单词“ sort it”
$ grep "sort it" *

2、 行匹配
1)显示包含“4 8”字符串的文本:
$ grep  "48" data.f
2)输出匹配行的总数
$ grep -c "48" data.f
4
3)行数
显示满足匹配模式的所有行行数:
$ grep -n "48" data.f
行数在输出第一列,后跟包含4 8的每一匹配行。

4)显示非匹配行
$ grep -v "48" data.f

5)精确匹配
可能大家已注意到,在上一例中,抽取字符串“ 4 8”,返回结果包含诸如4 8 4和4 8 3等包含“4 8”的其他字符串,实际上应精确抽取只包含4 8的各行。
使用g r e p抽取精确匹配的一种更有效方式是在抽取字符串后加\ >。假定现在精确抽取4 8,方法如下:
$grep "48\>" data.f

6)大小写敏感
缺省情况下, g r e p是大小写敏感的,如要查询大小写不敏感字符串,必须使用- i开关。在d a t a . f文件中有月份字符S e p t,既有大写也有小写,要取得此字符串大小写不敏感查询,方法如下:
$grep -i "48" data.f


1、模式范围
抽取代码为4 8 4和4 8 3的城市位置,可以使用[ ]来指定字符串范围。
$ grep "48[34]" data.f

2、不匹配行首
使行首不是4或8,可以在方括号中使用^记号。
$ grep "^[^48]" data.f
如果是字符串48
$ grep -v "^[^48]" data.f

3、设置大小写
使用- i开关可以屏蔽月份S e p t的大小写敏感
$ grep -i "sept" data.f
也可以用另一种方式[ ]模式抽取各行包含S e p t和s e p t的所有信息。
$ grep '[sS]ept' data.f

如果要抽取包含S e p t的所有月份,不管其大小写,并且此行包含字符串483,可以使用管道命令,即符号“|”左边命令的输出作为“ |”右边命令的输入。举例如下:
[sam@chenwy sam]$ grep '[sS]ept' data.f | grep 48
483     Sept    5AP1996 USP     65.00   LVX2C   189

4、匹配任意字符
如果抽取以K开头,以D结尾的所有代码,可使用下述方法,因为已知代码长度为5个字符:
[sam@chenwy sam]$ grep 'K...D' data.f
47      Oct     3ZL1998 LPSX    43.00   KVM9D   512
483     may     5PA1998 USP     37.00   KVM9D   644

将上述代码做轻微改变,头两个是大写字母,中间两个任意,并以C结尾:
[sam@chenwy sam]$ grep '[A-Z]..C' data.f

5、日期查询
一个常用的查询模式是日期查询。先查询所有以5开始以1 9 9 6或1 9 9 8结尾的所有记录。使用模式5 . . 1 9 9 [ 6 , 8 ]。这意味着第一个字符为5,后跟两个点,接着是1 9 9,剩余两个数字是6或8。
[sam@chenwy sam]$ grep '5..199[6,8]' data.f

6、范围组合
必须学会使用[ ]抽取信息。假定要取得城市代码,第一个字符为0-9,第二个字符在0到5之间,第三个字符在0到6之间,使用下列模式即可实现。
[sam@chenwy sam]$ grep '[0-9][0-5[0-6]' data.f

7、模式出现机率
抽取包含数字4至少重复出现两次的所有行,方法如下
[sam@chenwy sam]$ grep '4\{2,\}' data.f

8、使用grep匹配“与”或者“或”模式
g r e p命令加- E参数,这一扩展允许使用扩展模式匹配。例如,要抽取城市代码为2 1 9或2 1 6,方法如下:
[sam@chenwy sam]$ grep -E '219|216' data.f

9、空行
结合使用^和$可查询空行。使用- c参数显示总行数:
[sam@chenwy sam]$ grep -c '^$' myfile

使用- n参数显示实际在哪一行:
[sam@chenwy sam]$ grep -n '^$' myfile

10、匹配特殊字符
查询有特殊含义的字符,诸如$ . ' " * [] ^ | \ + ? ,必须在特定字符前加\。假设要查询包含“.”的所有行,脚本如下:
[sam@chenwy sam]$ grep '\.' myfile
或者是一个双引号:
[sam@chenwy sam]$ grep '\"' myfile

以同样的方式,如要查询文件名c o n f t r o l l . c o n f(这是一个配置文件),脚本如下:
[sam@chenwy sam]$ grep 'conftroll\.conf' myfile

11、查询格式化文件名
使用正则表达式可匹配任意文件名。系统中对文本文件有其标准的命名格式。一般最多六个小写字符,后跟句点,接着是两个大写字符。
[sam@chenwy sam]$ grep '^[a-z]\{1,6\}\.[A-Z]\{1,2\}' filename

2、使用通配符*的匹配模式
grep "l.*s" testfile

如在行尾查询某一单词,试如下模式:
grep "ng$" testfile
这将在所有文件中查询行尾包含单词ng的所有行。

分享到:
评论

相关推荐

    linux-shell脚本命令:grep命令简介

    本文主要对linux-shell脚本命令中的grep命令进行简介,希望对您有所帮助。

    Linux系统指令:文件内容查询工具Grep

    linux使用GNU版本的Grep。它功能更强,可以通过-G、-E、-F命令行选项来使用eGrep和fGrep的功能。Grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串...

    Linux指令一周通 (技术图书大系).azw3

    2.12 grep指令:匹配搜索 2.13 ispell指令:拼字检查程序 2.14 jed指令:编辑文本文件 2.15 joe指令:编辑文本文件 2.16 join指令:连接两个指定的文件 2.17 look指令:单字查询 2.18 mtype指令:显示MS-DOS文件的...

    linux shell 管道命令(pipe)使用及与shell重定向区别

    看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了。这次我们看下管道命令了。shell管道,可以说用法就简单多了。 管道命令操作符是:”|”,它...

    Linux 必备指令摘要,快速找到你要的命令

    bash GNU Bouren-Again Shell bash shell_script cat 观看一般文本文件 cat file.txt chgrp 更改群组 chgrp groupname file chmod 更改文件权限 chmod 755 file chown 更改文件owner chown username file cp 复制...

    linux 常用命令

    linux的一些常用命令收集 1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入相应的用户环境. 退出当前shell,输入:exit 2. ...

    Linux-Shell

    grep的指令扩展 在文件中搜索查找包含搜索关键字的行 语法:grep 选项 搜索内容 文件名 -i 不区分大小写 -n显示匹配行及行号 -v显示不匹配文本的其他行 .匹配除“\n”之外的任何单个字符 grep “r…t” /etc/passwd ...

    LINUX操作系统(电子教案,参考答案)

    主要包括Linux的基本概念和操作,Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络...

    linux学习笔记v1.0 - 1860平台指令.docx

    echo -e "AT\r\n" >/dev/ttyUSB...ps | grep 773 kill su adb root adb remount adb push D:\project\万方\1021\zhu\wanfangzhu /system/bin adb shell chmod 777 /system/bin/wanfangzhu ./system/bin/wanfangzhu &

    linux 通过命令关闭指定服务

    在linux中通过命令将指定服务关闭脚本 ps -efwww | grep ,先查询进程号,然后kill掉需要关闭的服务

    linux查看cpu是否支持64位的方法

    查看cpuinfo中是否有lm,如果有lm表示支持64位,lm的意思是long mode,... 您可能感兴趣的文章:linux php-cgi.exe占用cpu 100%的一次排障之旅Linux shell脚本实现CPU预警Linux中使用Shell脚本查看Java线程的CPU使用情况

    php在linux中可能用到的命令(推荐)

    您可能感兴趣的文章:linux touch,chattr指令详解及用法详解Linux命令修改文件的三个时间Linux C字符串替换函数实例详解linux 详解useradd 命令基本用法Linux shell命令帮助格式详解Linux shell

    Linux命令大全完整版

    Linux命令大全完整版 目 录 目 录 I 1. linux系统管理命令 1 adduser 1 chfn(change finger information) 1 chsh(change shell) 1 date 2 exit 3 finger 4 free 5 fwhois 5 gitps(gnu interactive tools ...

    linux操作系统培训资料.pptx

    Linux常用操作命令 命令 功能 grep 在指定文件查找指定字符串 mv 移动文件或目录 chmod 改变文件权限指令 man 命令或函数帮助查询指令 top 查看cpu和内存使用情况的指令 ps 查看当前运行的进程的指令 pstree 查看...

    Linux非常常用的指令

    Linux常用指令归纳文件管理ls命令 – 显示目录下的内容和属性信息mkdir命令 – 创建目录cp命令 – 复制文件或目录mv命令 – 移动或改名文件grep命令 – 强大的文本搜索工具pwd命令 – 显示当前路径文档编辑echo命令 ...

    Linux使用教程(教程)

    5.Last line mode下指令简介 118 ※十一、ifconfig 119 十二、write 命令 122 用途: 122 语法: 123 描述: 123 工作站 123 参数 123 标志 124 退出状态 124 示例 124 文件 125 十三、关于 Linux系统中关机命令详细...

    入门学习Linux常用必会60个命令实例详解doc/txt

    前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下: Changing fihanging ...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    13.4.6 设置 Shell对Oracle用户的限制 13.4.7 配置hangcheck-timer内核模块 13.4.8 配置系统安全设置 13.4.9 创建Oracle用户和组 13.4.10 设置Oracle用户环境变量 13.4.11 配置节点间SSH信任 13.4.12 ...

    Linux 101 hacks (2nd)

    技巧64:用HISTIGNORE 让history 在存储时忽略某些指令 第九章:系统管理任务 技巧 65:用 fdisk 进行分区 技巧 66:用 mke2fsk 格式化分区 技巧 67:挂载分区 技巧 68:用tune2fs 进行分区调整 技巧 69:创建交换...

    bash-onedrive-upload:通过Linux命令行将文件上传到OneDrive

    使用通过Linux命令行将文件上载到 。 使用git clone --recursive检出存储库,包括所有必需的子模块。 如果以.zip ./libs/json下载此存储库的内容,则还需要手动下载并将其./libs/json压缩到./libs/json ,因为ZIP...

Global site tag (gtag.js) - Google Analytics