grep、sed命令使用记录
一、grep —— 文本搜索工具
格式:grep [OPTIONS] PATTERN [FILE...]
OPTIONS:
-i:忽略大小写
--color:显示匹配字符高亮颜色
-v:取反
-o:只显示被匹配到的字符串
-c:只显示匹配结果行数
-n:显示匹配结果的同时在前面显示在该文件里对应的行数
-E:使用扩展正则表达式
-A 行数:显示匹配行数和匹配行数的后两行
-B 行数:显示匹配行数和匹配行数的前两行
-C 行数:显示匹配行数和匹配行数的前后两行
正则表达式:
元字符:
.:表示匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字符集合:
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
匹配次数:
*:匹配其前面的字符任意(0次或多次)
.*:任意长度的任意字符
\?:匹配其前面的字符1次或0次
\{m,n\}:匹配其前面的字符至少m次,最多n次
位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符前面的任意内容必须出现在行尾
^$:空白行
单词锚定:
\<:其后面的任意字符必须作为单词的首部出现
\>:其前面的任意字符必须作为单词的尾部出现
\(\):分组
example:\(ab\)*:可以匹配任意个ab
后向引用:
\1:引用第一个左括号以及与之对应的右括号所包含的所有内容(前面匹配到什么,后面就引用什么)
\2:引用第二个左括号
\3:引用第三个左括号
...
example:从/etc/inittab文件中找出包含0-9后面跟任意字符串以0-9结尾的行(\1引用[0-9]);
grep '\([0-9]\).*\1$' /etc/inittab
扩展正则表达式:grep -E 或 egrep
字符匹配:
.
[ ]
[^]
次数匹配:
*:匹配其前面的字符任意(0次或多次)
?:匹配其前面的字符1次或0次
+:匹配其前面的字符至少1次
{m,n}:匹配其前面的字符至少m次,最多n次
位置锚定:
^
$
\<
\>
分组:()
\1,\2,\3,...
|:或
example:A|abc,匹配A或者abc
二、sed —— Stream EDitorsed(流编辑器)
格式:sed [OPTIONS] 'AddressCommand' file ...
OPTIONS:
-n:静默模式,不再默认显示模式空间中的内容
-i:直接修改原文件
-e script -e script:可以同时执行多个脚本
-f file:指定文件脚本
-r:表示使用扩展正则表达式
Address:
1、StartLine,EndLine
比如1,100
$:最后一行
$-1:倒数第二行
2、/RegExp/
/^root/——>以root开头的行
3、/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始,到第一次被pattern2匹配到的行结束,这中间的所有行
4、LineNumber
指定的行
5、StartLine,+N
从StartLine开始,向后的N行
Command:
d:删除符合条件的行
p:显示符合条件的行
a \string:在指定的行后面追加新行,内容为string
example:sed '/^\//a \# hello\n# test' /etc/fstab——>在/开头的行后添加hello和test两行
\n:换行
i \string:在指定的行前面追加新行,内容为string
r file:将指定的文件跟内容添加到符合条件的行处
example:sed '2r /etc/issue' /etc/fstab——>将/etc/issue的内容添加到/etc/fstab文件的第二行后
w file:将指定范围内的行另存到指定的文件中
s/pattern/string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串
加修饰符:
g:全局替换
i:忽略大小写
&:引用模式匹配到的整个字符串
example:
sed 's/l..e/&r/g' file——>把匹配到的用&引用到后面
sed 's/\(l..e\)/\1r/g' file
sed 's/l\(..e\)/L\1/g' file
转载于:https://blog.51cto.com/yuyucat/1651908
grep、sed命令使用记录相关推荐
- linux 文本编辑命令grep sed awk
grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
- 正则表达式(grep命令,egrep命令,sed命令,awk命令,sort工具,uniq工具)
文章目录 正则表达式 基础正则表达式:grep命令 查找行首"^"与行尾字符"$ 查找连续字符范围{} 元字符总结 正则表达式总结 扩展正则表达式 egrep命令 sed ...
- 对文件指定行进行编辑和保存 linux,linux 文本编辑命令grep sed awk(转)
[:digit:] 数字字符[:graph:] 非空字符(非空格.控制字符)[:lower:] 小写字符[:cntrl:] 控制字符[:print:] 非空字符(包括空格)[:punct:] 标点符号 ...
- Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
一.正则表达式 1.1国际字符模式匹配或匹配模式的类名 [:alnum:] : 0-9,A-Z,a-z [:alpha:] : A-Z,a-z [:upper:] : A-Z [:lower:] : ...
- 【Shell牛客刷题系列】SHELL1 统计文件的行数:学习wc命令和文本三剑客awk、grep、sed命令
该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...
- Linux三剑客命令详解(grep sed awk )
下面所说的是Linux中最重要的三个命令在业界被称为"三剑客",它们是awk,sed,grep. 我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能 ...
- linux 三剑客命令(grep,sed ,awk)
grep 命令 :强大的文本'搜索'工具 1.grep -n 'word' file_name 在file_name文件中找到word所在的所有行并显示.-n 为显示行号. 2.grep 'w[ea] ...
- cut\grep\awk\sed命令详解
cut\grep\awk\sed命令详解 1.cut命令详解及实例 (1)作用:提取文件中指定的列 语法格式:cut 选项 文件名 (2)选项作用: -d 分隔符 按照指定的 ...
- 文本三剑客之sed命令--文本替换;grep命令---文本过滤
目录 1.sed简介 2.sed的p命令--打印匹配行 3.sed的d命令--删除指定行 4.sed的a命令--在匹配行后面追加 5.sed的i命令--在匹配行前面插入 6.sed的c命令--整行替换 ...
最新文章
- python编程 从入门到实践怎么样-python编程从入门到实践这本书怎么样
- 怎么给linux分区,如何合理地给你的Linux分区
- Maven基础知识--Maven资源库详述
- MFC 列表控件CListCtrl加载类似QQ界面的头像与文字
- vscode设置折行字数
- 怎么检测mysql主从正常_使用pt-table-checksum检查主从复制是否正常
- 名校和非名校[两个实习生的事]
- python基础整理——关于进制输出初探
- (第十四章)创建储存过程与创建函数
- 《Java多线程编程核心技术》读书笔记
- seurat提取表达矩阵_本周最新文献速递20200719
- mac high sierra开机按option怎么只有一个磁盘_Mac降级重装必备 | MacOS 制作启动U盘及安装方法!...
- 华为NP课程笔记7-BGP1
- 遗传算法原理及算法步骤(学习篇·上)
- Floyd最短路算法
- 出现504怎么办?由于服务器更新导致的博客报504错误[详细记录]
- 安卓Tasker自动转发短信到邮箱
- MTK6737平台匹配设备节点的方法
- 给大家推荐一个卖旧衣服的,vx/zfb“麻袋到家旧衣服回收”可以下单啦,快递小哥免费上门取,0.5/kg,闲置衣服再也不用扔到垃圾桶了
- 无人机航模电池上面有20C 30C,这是放电倍率
热门文章
- 关于计算机的英语作文八百字,小学英语作文800字(精选10篇)
- linux安装中文输入法sc,Linux下安装Discuz_7.2_FULL_SC_GBK
- Linux写出相应密码的用途,linux运维面试题中级
- mysql基础_MySQL基础
- php sub pos,PHP pos() 函数
- 装修材料石膏线品牌加盟类织梦模板
- Imagine开源图片压缩程序源码
- 4.9 利用对应的泛型替换Hashtable[转]
- Linux: Shell编程基础
- Python实例讲解 -- 发送邮件带附件 (亲测)