三剑客之 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 '行号 参数 添加的内容' 文件名称
根据内容
当前行前面(i)或后面(a)添加信息
sed '/当前行的内容/参数 添加的内容' 文件名称
多行添加(在每一行增加相同的内容)
根据行号
多行连续添加(每行添加的内容一样)
前面(i)或后面(a)添加信息
sed '行号1,行号2 参数 添加的内容' 文件名称
多行不连续添加(每行可以添加不同的内容)
前面(i)或后面(a)添加信息
sed -e '行号1 参数 添加的内容' -e '行号2 参数 添加的内容' 文件名称
根据内容
多行连续添加
前面(i)或后面(a)添加信息
sed '/行号1的内容/,/行号2的内容/参数 添加的内容' 文件名称
多行不连续添加(每行可以添加不同的内容)
前面(i)或后面(a)添加信息
sed -e '/行号1的内容/参数 添加的内容' -e '行号2的内容/参数 添加的内容' 文件名称
注:
多行连续添加,添加的内容是一样的,
多行不连续添加,添加的内容可以不一样
条件信息
\n --- 在指定行后面添加多行信息(换行实现添加多行信息)
$ --- 表示最后一行
删除
单行删除
根据行号
sed '行号d' 文件名称
根据内容
sed '/当前行的内容/d' 文件名称
多行删除
根据行号
连续删除
sed '行号1,行号2d' 文件名称
不连续删除
根据内容
连续删除
sed '/行号1的内容/,/行号2的内容/d' 文件名称
不连续删除
sed '/行号1的内容/d;/行号2的内容/d' 文件名称
修改
单行修改
sed '行号s#被替换的内容#要替换成的内容#g' 文件名称
多行连续修改
sed '行号1,行号2s#被替换的内容#要替换成的内容#g' 文件名称
注:
利用正则将信息匹配出来,在做替换
利用后向应用前项做替换
查找
单行查找
根据行号
sed -n '行号p' 文件名称
根据内容
sed -n '/当前行的内容/p' 文件名称
多行查找
根据行号
连续查找
sed -n '行号1,行号2p' 文件名称
不连续查找
sed -n '行号1p;行号2p' 文件名称
根据内容
连续查找
sed -n '/行号1的内容/,/行号2的内容/p' 文件名称
不连续查找
sed -n '/行号1的内容/p;/行号2的内容/p' 文件名称
sed命令使用忠告 *****
1)sed命令操作时候要做备份
sed -i.bak --- 在编辑文件时,直接多文件进行备份
说明: sed命令在是使用时, 需要用到多个参数, 要将-i参数写在所有参数后面
2)sed命令在使用时, 一定不要让-n参数和-i参数一起使用