三剑客sed命令概念介绍
作用说明: ` stream editor for filtering and transforming text`
文件处理编辑命令
原理过程: 按照文件每行信息进行处理, 找出符合条件信息, 执行相应操作
语法结构: ` sed [参数] '条件 指令操作' 文件信息`
三剑客sed命令使用方法
` 准备环境:
cat >person.txt<<EOF
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
EOF
1) 如何进行查询
a 按照行号查询信息
查找单行信息: sed -n '3p' 文件信息
查找多行信息: sed -n '2,4p' 文件信息 连续多行 sed -n '2p;4p' person.txt 不连续多行
sed -n '2,$p' 文件信息
b 按照字符查询信息
查找单行信息: sed -n '/CTO/p' person.txt
查看多行信息: sed -n '/CTO/,/CIO/p' person.txt sed -n '/CTO/p;/CIO/p' person.txt
[root@linux67 oldboy]# cat person.txt
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
[root@linux67 oldboy]# sed -n '/CTO/,/CIO/p' person.txt
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
2)如何进行删除
ed -i '6d' person.txt
sed -i.bak '/COO/d' person.txt --- 将源文件内容先进行备份, 在进行操作
sed -ri '/CFO|CTO/d' person.txt
坑: 删除一个文件有#号的行
1) 查询需要删除内容
sed -n '/^#/p' config
2) 删除文件信息
sed -i '/^#/p' config
PS:
1. -i参数后面不能再跟上其他参数
2. -i参数和-n参数尽量不要结合使用
-i : 真正修改文件内容
3) 如何进行添加
3a: 在第三行的下面添加相应信息
3i: 在第三行的上面添加相应信息
[root@linux67 oldboy]# cat person.txt
101,oldboy,CEO
105,feixue,CIO
[root@linux67 oldboy]# sed -i '1a102,zhaoyao,CTO' person.txt
[root@linux67 oldboy]# cat person.txt
101,oldboy,CEO
102,zhaoyao,CTO
105,feixue,CIO
4) 如何进行修改
sed 参数 's#需要替换信息#替换成什么信息#g' 文件信息
sed '$s#CEO#CIO#g' person.txt --- 指定条件进行替换
sed -i "s#$Init_IP#$Change_IP#g" $File_info --- 指定变量信息做替换需要注意双引号使用`
网友评论