linux 三大利器 grep sed awk sed
Posted luke哈哈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 三大利器 grep sed awk sed相关的知识,希望对你有一定的参考价值。
sed主要内容和原理介绍
sed 流处理编辑器
- sed一次处理一行内容,读入一行处理一行
- sed不改变文件内容(除非重定向)
sed
- 命令行格式
$ sed [options] \'command\' file(s) (option:参数 ,command 操作命令 ,file操作文件命令)
option : -e , -n
command : 行定位(正则)+sed命令(操作)
- 脚本格式
$ sed -f scriptfile file(s)
sed 操作命令
- 基本操作命令
p(打印相关的行)
1.1 sed \'p\' passwd #会打印出两行,因为sed的原理是读入一行,输出一行,此处再加上p命令打印出来的一行,所以最后会打印出两行
1.2 sed -n \'p\'passwd #加了-n选项之后,只会打印出相关的行,那些不相关的行则不会打印出来 二、行定位
行定位 :
定位一行: x; /pattern/ 加入x定位到第x行,也可加入正则定位目标行
定位多行 :x,y ; /pattern/,y 定位到x到y行,或者定位到有正则pattern的行到y行
/pattern1/,/pattern2/; 定位到有正则pattern1的行到有正则pattern2的行
x,y! 定位到除x到y行的其他行
定位间隔行:first~step 定位到first行,在每隔step行输出一行
sed -n \'/ff/!p\' file
sed -n \'/news/,/mooc/p\' file---从news行开始到mooc行截至范围
sed -n \'10,20!p\' file---10-20行不打印
sed -n \'10~3p\' file---10行开始,跳跃3行输出
a(新增行)/i(插入行)
c(替代行)
d(删除行)
sed \'5a======\' file#在第5行的下面新增一行,并写入======这些内容
sed \'1,5i======\' file 表示在1-5行前面插入一行,并写入======这些内容
sed \'1,5c======\' file 将1-5行改变成一行====
sed \'1,5d\' file 删除1-5行
以上是关于linux 三大利器 grep sed awk sed的主要内容,如果未能解决你的问题,请参考以下文章