Linux三剑客grep/sed/awk
grep/sed/awk被称为linux的“三剑客”
grep更适合单纯的查找或匹配文本;
sed更适合编辑匹配到的文本;
awk更适合格式化文本,对文本进行较复杂各式处理;
Grep
--color=auto 或者 --color:表示对匹配到的文本着色显示
-i:在搜索的时候忽略大小写
-n:显示结果所在行号
-c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数
-o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行
-v:输出不带关键字的行(反向查询,反向匹配)
-w:匹配整个单词,如果是字符串中包含这个单词,则不作匹配
-Ax:在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after
-Bx:在输出的时候包含结果所在行之前的指定行数,这里指之前的x行,B:before
-Cx:在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行,C:context
-e:实现多个选项的匹配,逻辑or关系
-q:静默模式,不输出任何信息,当我们只关心有没有匹配到,却不关心匹配到什么内容时,我们可以使用此命令,然后,使用"echo $?"查看是否匹配到,0表示匹配到,1表示没有匹配到。
-P:表示使用兼容perl的正则引擎。
-E:使用扩展正则表达式,而不是基本正则表达式,在使用"-E"选项时,相当于使用egrep。
-m 1 匹配到首行记录后停止
http://www.zsythink.net/archives/1733/

Sed
sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器。
Sed小技巧:
1,
search_result=`grep -E --color -n '####VVVV' $podfile`
echo "$search_result"
### "$search_result" 加双引号保存grep结果中的换行符效果
2,
array=(`echo "$search_result" | awk -F "[:]" '{print$1}' | sort -r`)
### 加括号,将换行结果作为数组输出
http://cn.voidcc.com/question/p-oqtqbgdm-bgy.html
https://blog.csdn.net/longshenlmj/article/details/14166193
https://blog.csdn.net/lingeio/article/details/96480071
坑1:
eg :sed -i "" 's/$oldday/$today/g' ${json_path}
shell中如果有$这样的特殊字符,单引号要换成双引号。
坑2:
mac环境使用sed修改文件报错:invalid command code E
eg: sed -i "s/$oldday/$today/g" ${json_path}
原来sed -i需要带一个字符串作为备份源文件的文件名称,如果这个字符串长度为0,则不备份。
https://blog.csdn.net/fdipzone/article/details/51253955
坑3:
MAC执行sed命令报“command c expects \ followed by text”错误解决办法
https://blog.csdn.net/lord_y/article/details/99949999
awk
awk [options] '{pattern + action}' {filenames}
Vivien 补充
麻烦1:他们都是面向“行”的。跨行需要采用其他手段。
Linux三剑客grep/sed/awk的更多相关文章
- linux三剑客grep|sed|awk实践
最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk
- Linux三剑客grep、awk和sed
grep,sed 和 awk是Linux/Unix 系统中常用的三个文本处理的命令行工具,称为文本处理三剑客.本文将简要介绍这三个命令并给出基本用法. 管道 在介绍这两个命令之前,有必要介绍一下Uni ...
- Linux三剑客grep、awk、sed
何为Linux三剑客? 第一个剑客是 grep,grep 会根据正则表达式查找相关内容并打印对应的数据. 第二个剑客是 awk,awk 的名字来源于三个作者的名字简称,它可以根据定位到的数据行处理其中 ...
- Linux命令-grep,sed,awk
grep (global search regular expression[RE] and print out the line) 正则表达式全局搜索并将行打印出来 在文件中查找包含字符串" ...
- Linux学习grep,sed,awk工具的使用
1.grep:根据模式搜索文本并将符合模式的文本显示出来(pattern模式:由文本字符和正则表达式元字符所匹配出来的条件) 注:alias grep='grep --color' -c:打印符合要求 ...
- [svc]linux正则实战(grep/sed/awk)
企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...
- Linux实战教学笔记12:linux三剑客之sed命令精讲
第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...
- (转)不看绝对后悔的Linux三剑客之sed实战精讲
不看绝对后悔的Linux三剑客之sed实战精讲 原文:http://blog.51cto.com/hujiangtao/1923718 二.Linux三剑客之sed命令精讲 1,前言 我们都知道,在L ...
- Linux 三剑客之sed
目录 Linux 三剑客之sed 命令补充: sort命令 uniq命令 cut命令 tr命令 wc命令 三剑客 - sed 编辑模式: 定位分类: 实例如下: d模式--删除模式 p模式--打印 a ...
随机推荐
- CentOS 7.5 安装Oracle 11gR2 86%报错:Error in invoking target 'agent nmhs' of makefile
解决方案: 不要关闭安装过程,另外打开终端窗口,将ins_emagent.mk文件中的 (MK_EMAGENT_NMECTL)更改为$(MK_EMAGENT_NMECTL) -lnnz11,然后在安装 ...
- Android ImageView属性
ImageView 继承自View组件,主要功能是用于显示图片,实际上它不仅仅可以用来显示图片,任何Drawable对象都可以使用ImageView来显示.ImageView可以适用于任何布局中,并且 ...
- Oracle的“ORA-00937: 不是单组分组函数” 如何解决?
之前在编写oracle的sql语句时遇到这个问题,这里做个记录 问题描述:ORA-00937: 不是单组分组函数 问题原因:select语句中又在查询某一列的值,其中还有聚合函数 原先本人编写SQL是 ...
- spring.factories spring.schemas spring.handlers spring自动装配
org.springframework.core.io.support.SpringFactoriesLoader —— public static final String FACTORIES_RE ...
- odoo开发笔记 -- odoo快速开发技巧
1. 需求分析到位 2. 系统对接,角色用例,数据串接 ---确定,轻易不可变更 3. 业务流程拆分细化 出图--开发人员理解的地步 4. 数据模型建立 --对应角色用例 5. 确立开发计划,划分功能 ...
- 安装MySQL Server
之前安装了MySQL Workbench 8.0 CE,现在来安装MySQL Server. 点击 add next next next 完成 MySQL安装包地址: 链接:https://p ...
- 《原创视频》牛腩学docker简记
牛腩学docker简记 http://blog.niunan.net/blog/show/1258https://www.cnblogs.com/niunan/p/10917506.htmlhttps ...
- maven项目中更新了核心库后导致一些包提示未定义,如:The import org.json cannot be resolved
经查看发现了原因,因为核心库的版本没有变更,本地仓库只更新了核心库的jar部分的库,没有更新核心库pom项目.从而导致了一些库的引用提示未定义. 以后有新库更新,最好在本地库删除全部的相关库,再mav ...
- SDN实验---Ryu的应用开发(四)基于跳数的最短路径转发原理
一:实现最短跳数转发 (一)原理 推文:迪杰斯特拉算法和弗洛伊德算法 二:代码实现 (一)全部代码 from ryu.base import app_manager from ryu.controll ...
- 初识内存挂:VirtualNES金手指教程
一.什么VirtualNES?什么是金手指? VirtualNES是一个NES模拟器,用来运行.nes文件,即在电脑上玩当年小霸王游戏机上的游戏.而它内置了一个简单的Cheat Engine,称之为金 ...