sed处理文本的常用命令
发表于:2024-10-17 作者:千家信息网编辑
千家信息网最后更新 2024年10月17日,sed 是一个文本处理工具,可以将数据进行替换、新增、选取等特定工作格式sed 选项 动作 文件名使用sed替换文件中某个域的字段比如写的一个yaml文件中间有个字段需要修改,可以使用sed在外面命令
千家信息网最后更新 2024年10月17日sed处理文本的常用命令
sed 是一个文本处理工具,可以将数据进行替换、新增、选取等特定工作
格式
sed 选项 动作 文件名
使用sed替换文件中某个域的字段
比如写的一个yaml文件中间有个字段需要修改,可以使用sed在外面命令行进行替换
格式:sed 's/原字符/新的字符/' 文件名
[root@zhaocheng ~]# sed 's/systemctl/service/' filetest root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7bin:*:17834:0:99999:7:dadlp:*:17834:0:99999:7adasync:*:17834:0:99999:7:::ggshutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdanginx:!!:18289::::::daafrabbitmq:!!:18297:::::dadaservice start mysqlddadad:nginx:sdada
上面输出的只会输出到屏幕上,并不会修改文件,如果直接替换可以添加-i
[root@zhaocheng ~]# sed -i 's/systemctl/service/' filetest [root@zhaocheng ~]# cat filetest root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7bin:*:17834:0:99999:7:dadlp:*:17834:0:99999:7adasync:*:17834:0:99999:7:::ggshutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdanginx:!!:18289::::::daafrabbitmq:!!:18297:::::dadaservice start mysqlddadad:nginx:sdada
sed 参数含义指令
常用命令:a 新增c 取代d 删除i 插入p 列印s 取代
删除某行
如果处理文本的时候需要进行一些行的删除,可以使用d,代表删除
不加sed -i 不会删除,不加只会显示屏幕上
[root@zhaocheng]# sed '1d' filetest //删除第一行[root@zhaocheng]# sed '$d' filetest //删除最后一行[root@zhaocheng]# sed '1,2d' filetest //删除第一行到第二行[root@zhaocheng]# sed '3,$d' filetest //删除第三行到最后一行
显示某行
比如处理文本的时候需要提取文本的某个某行
[root@zhaocheng]# sed -n '1p' filetest //显示第一行 [root@zhaocheng]# sed -n '$p' filetest //显示最后一行[root@zhaocheng]# sed -n '1,2p' filetest //显示第一行到第二行[root@zhaocheng]# sed -n '3,$p' filetest //显示第三行到最后一行
使用模式进行查询
比如处理比较大的文本想找出这个字段,那么直接可以使用-n 参数显示,动作指定需要提取的关键词,p进行打印
[root@zhaocheng]# sed -n '/bin/p' filetest //查询包括关键字bin所在所有行[root@zhaocheng]# sed -n '/\$/p' filetest service start mysqld$//查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义,不然识别不出
新增一行或者多行字符串
比如处理文本进行添加字段,并指定添加到某行,可以使用a,是增加,1a就是在第一行下去增加,如果字段比较多可以使用在vim中使用set nu,显示行号,或者直接在命令行使用cat -n 直接显示行号,在命令行使用sed '行数a xxxxxx 文件名
在第一行的下面新增一行
[root@zhaocheng ~]# sed '1a sed is very useful' filetest bin:*:17834:0:99999:7:dadsed is very usefullp:*:17834:0:99999:7adasync:*:17834:0:99999:7:::ggshutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdanginx:!!:18289::::::daafrabbitmq:!!:18297:::::dadaservice start mysqld$dadad:nginx:sdada%
在第2行与第3行增加sed is very useful
[root@zhaocheng ~]# sed '2,3a sed is very useful' filetest bin:*:17834:0:99999:7:dadlp:*:17834:0:99999:7adased is very usefulsync:*:17834:0:99999:7:::ggsed is very useful
进行替代行,这里我将第一行替换成kuberntes,1c就是第一行,c就是替换
[root@zhaocheng ~]# sed '1c kubernetes' filetest kuberneteslp:*:17834:0:99999:7adasync:*:17834:0:99999:7:::ggshutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdanginx:!!:18289::::::daafrabbitmq:!!:18297:::::dadaservice start mysqld$dadad:nginx:sdada%
将这个文本的最后一行添加jenkins,$就是最后一行,a是添加
[root@zhaocheng ~]# sed -i '$a jenkins' filetest[root@zhaocheng ~]# cat filetesthellpsync:*:17834:0:99999:7:::ggshutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdadadad:nginx:sdada%jenkins
删除匹配的行,匹配的jenkins这个行,进行删除
[root@zhaocheng ~]# sed -i '/jenkins/d' filetest[root@zhaocheng ~]# cat filetesthellpsync:*:17834:0:99999:7:::ggshutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdadadad:nginx:sdada%
匹配文本中带#的并删除掉,这里使用^以#开头/d是删除
[root@zhaocheng ~]# cat filetest#hellp#sync:*:17834:0:99999:7:::gg#shutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdadadad:nginx:sdada%[root@zhaocheng ~]# sed -i '/^#/d' filetest[root@zhaocheng ~]# cat filetesthalt:*:17834:0:99999:7::fsdadadad:nginx:sdada%
删除文本中每行的首数字
[root@zhaocheng ~]# cat filetest1fghjkl2ghjkl;'3fghjkl;4dfghjkl;[root@zhaocheng ~]# sed -i 's/^[0-9]//g' filetest[root@zhaocheng ~]# cat filetestfghjklghjkl;'fghjkl;dfghjkl;
一行
文本
文件
处理
字段
命令
就是
关键
字符
文件名
查询
关键字
动作
参数
含义
屏幕
所在
时候
格式
三行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云服务器ice lake
锻造网络安全铁军
vastbase数据库最新消息
湖南软件开发排行
学习软件开发需要什么知识
计算机网络技术第四章ppt
江苏嵌入式软件开发平台
衡水软件开发销售公司
数据库和管理信息系统的区别
行业数据淘宝软件开发
软件开发e-r图是哪个阶段
经典 网络安全十大守则
九月是网络安全月
五子棋游戏软件开发的摘要
数据库把某列置为空
ftp服务器本地用户是什么
tulip软件开发
软件开发用不用考研
云服务器能当主机
网络安全监察政府部门
互联网运营商网络安全宣传
温州百业通网络技术有限公司
数据分析用的数据库软件下载
杭州嵌入式软件开发靠谱吗
今年的网络安全情况
网络安全人人有责正确吗
数据库原理考试题库
万德数据库教程
黑龙江智能软件开发特征
哪个中文期刊数据库免费