shell编程系列8--文本处理三剑客之grep和egrep

本文详细介绍了Shell编程中grep和egrep命令的使用方法,包括基本语法、常用选项如-v、-i、-n、-E、-F、-r,以及示例演示如何进行文本搜索,适用于初学者和进阶用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell编程系列8--文本处理三剑客之grep和egrep

grep和egrep

第一种形式:grep [option] [pattern] [file1,file2...]

第二种形式:command | grep [option] [pattern]

grep参数

选项    含义
-v    不显示匹配行信息
-i    搜索时忽略大小写
-n    显示行号
-r    递归搜索
-E    支持扩展正则表达式
-F    不按正则表达式匹配,按照字符串字面意思匹配
不常用选项
-c 只显示匹配行总数 -w 匹配整词 -x 匹配整行 -l 只显示文件名,不显示内容 -s 不显示错误信息
grep和egrep: grep语法格式
grep [option] [pattern] [file1,file2...] 必须掌握的选项: -v 显示不匹配pattern的行 -i 搜索时忽略大小写 -n 显示行号 -E 支持扩展的正则表达式 -F 不支持正则表达式,按字符串的字面意思进行匹配 -r 递归搜索 需要了解的选项: -c 只输出匹配行的数量,不显示具体内容 -w 匹配整词 -x 匹配整行 -l 只累出匹配的文件名,不显示具体匹配行内容 grep和egrep: grep默认不支持扩展正则表达式,只支持基础正则表达式 使用grep -E可以支持扩展正则表达式 使用egrep可以支持扩展正则表达式,与grep -E等价 # 示例 # 显示file中有python的行 [root@es01 ~]# cat file i love python hello python aaa bbb I LOVE PYTHON HELLO PYTHON PYTHON IS A AI LANGUAGE end [root@es01 ~]# grep python file i love python hello python # 没有python的行,不忽略大小写 [root@es01 ~]# grep -v python file aaa bbb I LOVE PYTHON HELLO PYTHON PYTHON IS A AI LANGUAGE end # 没有python的行,忽略大小写 [root@es01 ~]# grep -vi python file aaa bbb end # 查找/etc/man_db.conf 中带man的行,在文件中的行号 [root@es01 ~]# grep -n man /etc/man_db.conf 3:# This file is used by the man-db package to configure the man and cat paths. 4:# It is also used to provide a manpath for those without one by examining 5:# their PATH environment variable. For details see the manpath(5) man page. 12:# MANDATORY_MANPATH manpath_element 13:# MANPATH_MAP path_element manpath_element 14:# MANDB_MAP global_manpath [relative_catpath] 18:#MANDATORY_MANPATH /usr/src/pvm3/man 20:MANDATORY_MANPATH /usr/man 21:MANDATORY_MANPATH /usr/share/man 22:MANDATORY_MANPATH /usr/local/share/man 25:# ie. what man tree holds man pages for what binary directory. 29:MANPATH_MAP /bin /usr/share/man 30:MANPATH_MAP /usr/bin /usr/share/man 31:MANPATH_MAP /sbin /usr/share/man 32:MANPATH_MAP /usr/sbin /usr/share/man 33:MANPATH_MAP /usr/local/bin /usr/local/man 34:MANPATH_MAP /usr/local/bin /usr/local/share/man 35:MANPATH_MAP /usr/local/sbin /usr/local/man 36:MANPATH_MAP /usr/local/sbin /usr/local/share/man 37:MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man 38:MANPATH_MAP /usr/bin/X11 /usr/X11R6/man 39:MANPATH_MAP /usr/games /usr/share/man 40:MANPATH_MAP /opt/bin /opt/man 41:MANPATH_MAP /opt/sbin /opt/man ... # -E 支持扩展正则表达式选项 [root@es01 ~]# cat file i love python hello python aaa bbb I LOVE PYTHON HELLO PYTHON PYTHON IS A AI LANGUAGE end [root@es01 ~]# grep "python|PYTHON" file [root@es01 ~]# grep -E "python|PYTHON" file i love python hello python I LOVE PYTHON HELLO PYTHON PYTHON IS A AI LANGUAGE [root@es01 ~]# # 只显示匹配到的行数 [root@es01 ~]# grep -c python file 2 [root@es01 ~]# grep -c man /etc/man_db.conf 44 # 匹配python或者PYTHON [root@es01 ~]# grep -E "python|PYTHON" file i love python very hello python I LOVE PYTHON HELLO PYTHON PYTHON IS A AI LANGUAGE lovelove python [root@es01 ~]# egrep "python|PYTHON" file i love python very hello python I LOVE PYTHON HELLO PYTHON PYTHON IS A AI LANGUAGE lovelove python

 

posted @ 2019-06-04 16:28 reblue520 阅读( ...) 评论( ...) 编辑 收藏
内容概要:本文深入探讨了Kotlin语言在函数式编程跨平台开发方面的特性优势,结合详细的代码案例,展示了Kotlin的核心技巧应用场景。文章首先介绍了高阶函数Lambda表达式的使用,解释了它们如何简化集合操作回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程跨平台开发领域不断完善发展。; 适合人群:对函数式编程跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解实践Kotlin的函数式编程特性跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解掌握。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值