欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三剑客之 sed

程序员文章站 2022-05-10 08:30:26
...

sed命令作用

1)过滤筛选文件内容信息
2)擅长对指定行进行操作
3)擅长直接编辑文件内容

sed命令语法格式:

 sed 参数 '条件 指令' 文件信息 
参数
	-n	--- 取消模式输出
	-i	--- 真正编辑文件内容
	-r	--- 识别扩展正则 
	-e	--- 识别多个条件操作
指令 
	p	--- 输出操作
	d	--- 删除操作
	a	--- 附加操作
	i	--- 插入操作
	s	--- 替换操作
	g	--- 全局替换

注:
  1)sed 是在 “模式空间” 中的操作, 若需要真正的编辑文件需加参数 -r
  2)用 sed 命令做增删改查时,找出一行中的某一列信息即可


增加

单行增加内容

根据行号
	当前行前面(i)或后面(a)添加信息	
		sed '行号 参数 添加的内容' 文件名称

三剑客之 sed

根据内容
	当前行前面(i)或后面(a)添加信息
		sed '/当前行的内容/参数 添加的内容' 文件名称

三剑客之 sed

多行添加(在每一行增加相同的内容)

根据行号
多行连续添加(每行添加的内容一样)
	前面(i)或后面(a)添加信息
		sed '行号1,行号2 参数 添加的内容' 文件名称

三剑客之 sed

多行不连续添加(每行可以添加不同的内容)
	前面(i)或后面(a)添加信息
		sed -e '行号1 参数 添加的内容' -e '行号2 参数 添加的内容' 文件名称

三剑客之 sed

根据内容
多行连续添加
	前面(i)或后面(a)添加信息
		sed '/行号1的内容/,/行号2的内容/参数 添加的内容' 文件名称

三剑客之 sed

多行不连续添加(每行可以添加不同的内容)
	前面(i)或后面(a)添加信息
		sed -e '/行号1的内容/参数 添加的内容' -e '行号2的内容/参数 添加的内容' 文件名称

三剑客之 sed
注:
  多行连续添加,添加的内容是一样的,
  多行不连续添加,添加的内容可以不一样

条件信息

\n	--- 在指定行后面添加多行信息(换行实现添加多行信息)
$	--- 表示最后一行

删除

单行删除

根据行号
sed '行号d' 文件名称

三剑客之 sed

根据内容
sed '/当前行的内容/d' 文件名称

三剑客之 sed

多行删除

根据行号
连续删除
	sed '行号1,行号2d' 文件名称

三剑客之 sed

不连续删除
三剑客之 sed

根据内容
连续删除
	sed '/行号1的内容/,/行号2的内容/d' 文件名称

三剑客之 sed

不连续删除
	sed '/行号1的内容/d;/行号2的内容/d' 文件名称

三剑客之 sed


修改

单行修改

sed '行号s#被替换的内容#要替换成的内容#g' 文件名称

三剑客之 sed

多行连续修改

sed '行号1,行号2s#被替换的内容#要替换成的内容#g' 文件名称

三剑客之 sed

注:
  利用正则将信息匹配出来,在做替换
  利用后向应用前项做替换


查找

单行查找

根据行号
sed -n '行号p' 文件名称

三剑客之 sed

根据内容
sed -n '/当前行的内容/p' 文件名称

三剑客之 sed

多行查找

根据行号
连续查找
	sed -n '行号1,行号2p' 文件名称

三剑客之 sed

不连续查找
	sed -n '行号1p;行号2p' 文件名称

三剑客之 sed

根据内容
连续查找
	sed -n '/行号1的内容/,/行号2的内容/p' 文件名称

三剑客之 sed

不连续查找
	sed -n '/行号1的内容/p;/行号2的内容/p' 文件名称

三剑客之 sed


sed命令使用忠告 *****

1)sed命令操作时候要做备份
	sed -i.bak		--- 在编辑文件时,直接多文件进行备份
	说明: sed命令在是使用时, 需要用到多个参数, 要将-i参数写在所有参数后面

2)sed命令在使用时, 一定不要让-n参数和-i参数一起使用
相关标签: Linux 基础