linux中sed命令(全面解析)


一:linux中sed命令介绍
Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

image

1.sed作用
sed是linux中,流媒体编辑器
sed	: 修改文件
2.sed命令格式
sed [参数] '处理结果' [操作对象]
3.参数
-e	: 允许多项编辑
-n	: 取消默认输出
-i	: 就地编辑
-r	: 支持扩展正则
4.sed的编辑模式
d	: 删除
p	: 打印
a	: 在当前行后添加一行或多行
5.sed参数解析用法
1.指定删除文件第三行和第六行内容之多项编辑
案例:
	sed -e '3d' -e '6d' 1.txt
	
2.指定打印取消默认输出(只显示打印出的第五行内容)
案例
	sed -n '5p' 1.txt

3.就地编辑(直接编辑到文件内)
案例:
	sed -i '5p' 1.txt
	
4.扩展正则(跟grep-E功能是一样的《普通正则是默认支持的,特殊正则需要使用扩展》)
案例:
	定位删除两个斜线正则当中的内容'/123/d'就是匹配文件内123!
	sed -r '/123/d' 1.txt
二:sed 参数 -f 案例实战解析
1.前介
4.扩展正则(跟grep-E功能是一样的《普通正则是默认支持的,特殊正则需要使用扩展》)
案例:
	定位删除两个斜线正则当中的内容'/123/d'就是匹配文件内123!
	sed -r '/123/d' 1.txt	
2.引入简介
1.如果我们的扩展正则写的非常复杂的话,这个地方会非常任意写错。
所有说我们用到了以下方法:
就像面向对象中为了解决对象与对象之间的代码冗余的问题,我们用到了类一样。
3.方法流程(根据提供的规则命令匹配)
4.在 2.txt文件中编写
[root@localhost ~]# vim 2.txt

image

5.根据提供的规则命令匹配并删除数据
[root@localhost ~]# sed -f 2.txt 1.txt

1. '/123/d'	:匹配规则
2. 匹配规则可以放在 2.txt 文件内
3. -f 参数来指定规则文件(2.txt)
4. 来操作后面1.txt的操作对象

image

三:sed的编辑模式
d	: 删除
p	: 打印
a	: 在当前行后添加一行或多行
在sed中最中最重要的就是 定位 与编辑模式!
1.定位介绍解析
1.数字定位法
解释: 就是指定多少行,指定行号。
案例1('3d'代表删除多少行)
	sed '3d' 1.txt
案例2('2,3d'代表删除2行和3行)
	sed '2,3d' 1.txt

2.正则定位法
解释: 就是把数字的定位改成正则的定位(指定正则定位法)
案例1(删除以g开头的行)
	sed '/^g/d' 4.txt
案例2(删除以包含g的行)
	sed '/g/d' 4.txt
	
3.数字和正则定位法
解释: 就是指定一个数字后面是正则
案例1(从第三行开始删除到g结尾的行结束)
	sed '3,/^g/d' 4.txt

4.正则和正则定位法
解释: 就是指定一个正则后面一个正则
案例1(删除以g开头的行到以j结尾的行结束)
	sed '/^g/,/^j/d' 4.txt
2.sed的编辑模式
d	: 删除
p	: 打印

a	: 在当前行后添加一行或多行
案例1:(指定在文件第二行后添加xxx内容)
	sed '2axxx' 1.txt
	
c	: 用新文件修改(替换)当前行
案例2:(指定替换(修改)第二行内容为xxx)
	sed '2cxxx' 1.txt
	
i	: 在当前行之前,插入文本(单独使用时)
案例3:(指定在第二行之前插入/添加xxx内容)
	sed '2ixxx' 1.txt

r	: 在文件中读内容
案例4:(将2.txt文件的内容,读到/添加到1.txt中的第二行后)
	sed '2r 2.txt' 1.txt 
	
w	: 将指定行写入文件
案例5:(将2.txt文件内容第二行写入w.txt文件内)
注:2.txt写入到w.txt内时会将w.txt之前内容清空写入
	sed '2w w.txt' 2.txt
	
y	: 将字符转换成另一个字符
案例6:(将4第二行的小写f替换成大写F《只替换字符》)
	sed '2y/f/F/' 4.txt
案例7:(将4第二行的小写f和a替换成大写F和A《只替换字符》)
	sed '2y/fa/FA/' 4.txt
	
注: 单个称为字符!	
	单个以上为字符串!

s	: 将字符串转换成另一个字符串(每一行只替换一次)
案例8:(将文件内11替换成22)
	sed 's/11/22/' 4.txt

g	: 全部执行
案例9:(全部替换g模式 加 s模式)
	sed 's/11/22/g' 1.xtt

i	: 忽略大小写(跟 s 模式以前使用时)
案例10:(在文件内替换时没有大写F,只有小写时配合使用i《忽略大小写》)
	sed 's/F/abc/gi' 4.txt

image


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM