linux的sed(增删改查)使用方法
sed的增删改查的基本操作
参考:https://www.cnblogs.com/0zcl/p/6855740.html
01:增(a)
2个sed命令,分别是:(这些操作都是在内存中进行的,所以不会 被写入到原文件中,如果需要修改原文件则需要用大 -i )
eg:修改原文件的内容。为了防止修改配置文件,一定要实现辈分或则用测试文件测试
sed -i '2a ppppppp' test.txt #在第二行之后添加数据,并写入到原文件
- “a”:追加文本到指定行后,记忆方法:a的全拼是append,意思是追加。
- “i“:插入文本到指定行前,记忆方法:i的全拼是insert,意思是插入。
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
hhhhhhhhh [root@tom /]# sed '2a ppppppp' test.txt #2a 代表在第二行之后进行 添加 操作
xxxxxxxxxxxx
mmmmmmmmmmmm #新增的内容
ppppppp
hhhhhhhhh [root@tom /]# sed '2i 9999' test.txt #2i 代表在第二行之前进行 插入 操作
xxxxxxxxxxxx
9999 #新插入的内容
mmmmmmmmmmmm
hhhhhhhhh 总结:插入i 在之前, a添加在之后
ps:单引号和双引号的用法
#单引号--变量$PATH会将文本内容原封不动插入,不会解释成路径 #双引号--变量$PATH被解析以后在当作文本进行插入 总结:
- 如果引号里面是普通字符串的话,你可以任意使用单引号或者双引号:
- 如果引号里面是变量或者带反引号的命令的话,你想要变量解析的结果或者命令执行的结果,那就使用双引号;你想要引号内的原样字符串,那就使用单引号。

02:添加多行文本到一个文件中并写入到原文件中
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk [root@tom /]# sed -i "3a qq\nwww\neee\nrrr\nttt\nyyy\nuuu" test.txt # -i 代表写入原文件, \n 代表换行,一定不能忘记写 \n 不然不会起作用
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
www
eee
rrr
ttt
yyy
uuu
03:删除
1.删除单行文本(删除第三行文本)
[root@tom /]# sed "3d" test.txt #3d 数字代表第几行,d代表删除
xxxxxxxxxxxx
mmmmmmmmmmmm
www
eee
rrr
ttt
yyy
uuu
2.删除第2行到第三行的数据
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
www
eee
rrr
ttt
yyy
uuu [root@tom /]# sed "2,3d" test.txt #删除第二行到第三行的数据(包含这首位这两个)
xxxxxxxxxxxx
www
eee
rrr
ttt
yyy
uuu
3.正则匹配删除
在sed软件中,使用正则的格式和awk一样,使用2个”/“包含指定的正则表达式,即“/正则表达式/”。
"/k/d"有哪一行有k则删除这一行。
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
www
eee
rrr
ttt
yyy
uuu [root@tom /]# sed "/k/d" test.txt #删除包含k的这一行内容
xxxxxxxxxxxx
mmmmmmmmmmmm
www
eee
rrr
ttt
yyy
uuu
正则表达式形式的多行删除,也是以逗号分隔2个地址,最后结果是删除包含“k”的行到包含“x”的行
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
www
eee
rrr
ttt
yyy
uuu [root@tom /]# sed "/m/,/y/d" test.txt #删除包含m到包含y的行
xxxxxxxxxxxx
uuu
正则表达式我们知道“$”代表行尾,在sed中“$”代表文件的最后一行。
例子:
[root@tom /]# sed "/3,$/d" test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
www
eee
rrr
ttt
yyy
uuu [root@tom /]# sed "3,\$d" test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
[root@tom /]#
4:sed文本内容替换
- “s”:单独使用-->将每一行中第一处匹配的字符串进行替换==>sed命令
- “g”:每一行进行全部替换-->sed命令s的替换标志之一(全局替换),非sed命令。
- “-i”:修改文件内容-->sed软件的选项,注意和sed命令i区别。
sed软件替换模型 ===> sed -i 's#目标内容#替换内容#g'
- 定界符/或#,第一个和第二个之间的就是被替换的内容,第二个和第三个之间的就是替换后的内容。建议使用#作为定界符。
- s#目标内容#替换内容#g ,“目标内容”能用正则表达式,但替换内容不能用,必须是具体的。因为替换内容使用正则的话会让sed软件无所适从,它不知道你要替换什么内容。
- 默认sed软件是对模式空间(内存中的数据)操作,而-i选项会更改磁盘上的文件内容。
[root@tom /]# cat test.txt
xxxxxxxxxxxx
mmmmmmmmmmmm
kkkkkkkkkkkk
www
eee
rrr
ttt
yyy
uuu [root@tom /]# sed "s#m#b#g" test.txt #将文本中的m全部替换成b, s代表替换的意思,g代表全部
xxxxxxxxxxxx
bbbbbbbbbbbb
kkkkkkkkkkkk
www
eee
rrr
ttt
yyy
uuu
linux的sed(增删改查)使用方法的更多相关文章
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- dbutils中实现数据的增删改查的方法,反射常用的方法,绝对路径的写法(杂记)
jsp的三个指令为:page,include,taglib... 建立一个jsp文件,建立起绝对路径,使用时,其他jsp文件导入即可 导入方法:<%@ include file="/c ...
- 一个Servlet处理增删改查的方法
处理的思路是在servlet中定义不同的增删改查方法,页面请求 的时候携带请求的参数,根据参数判断调用不同的方法. package cn.xm.small.Servlet; import java.i ...
- thinkPHP增删改查的方法案例
thinkphp对数据库增删改查进行了封装操作,使得使用更加方便,但是不一定灵活. 可以用封装的用,需要写sql,可以执行sql. 1.原始的 $Model = new Model(); // 实例化 ...
- sed 增删改查详解以及 sed -i原理
我为什么要详细记录sed命令: sed 擅长取行.工作中三剑客使用频率最高,本篇文章将对sed命令常用的 增,删,改,查 进行详细讲解,以备以后工作中遗忘了查询,sed命令是作为运维人员来说, ...
- java连接数据库增删改查公共方法
package dao; import java.io.IOException; import java.sql.CallableStatement; import java.sql.Connecti ...
- 封装自己通用的 增删改查的方法 By EF
封装自己的通用CURD By EF using System; using System.Collections.Generic; using System.Data.Entity; using Sy ...
- Vue 里面对树状数组进行增删改查 的方法
[{"id":"5e4c3b02fc984961a17607c37712eae0", "optLock":0, "parentId ...
- linux之文件增删改查
- Linux - 用户的增删改查及组的相关操作
useradd:新增一个用户 useradd 几个常用的参数: -u:指定用户的 uid -g:指定用户所属的组 -d:指定用户的家目录 -c:指定用户的备注信息 -s:指定用户所用的 shell [ ...
随机推荐
- Linux 系统配置
centos 7 防火墙和端口配置开启redis端口,修改防火墙配置文件 vi /etc/sysconfig/iptables 加入端口配置 -A RH-Firewall-1-INPUT -m sta ...
- Nmap扫描参数解析
Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字Nmap是Network Mapper的简称.Nmap最初是由Fyo ...
- array_combine()
- BWA/BWT 比对软件
名称 bwa – Burrows-Wheeler Alignment Tool 内容摘要描述命令行与选项SAM 比对格式短序列比对注意事项 比对精确性 估计插入大小分布 内存需求 ...
- WordPaster-Joomla_3.4.7-tinymce 4.1.7示例发布
资源下载:Joomla 3x, 1.1.1. 1.添加wordpaster文件夹 /media/ 1.1.2. 2.添加插件文件夹 路径:media/editors/tinymce/plugi ...
- VC中CDC与HDC的区别以及二者之间的转换
CDC是MFC的DC的一个类 HDC是DC的句柄,API中的一个类似指针的数据类型. MFC类的前缀都是C开头的 H开头的大多数是句柄 这是为了助记,是编程读\写代码的好的习惯. CDC中所有MFC的 ...
- PMBOK项目管理相关知识梳理
该次梳理,依据PMBOK(第五版),罗列项目管理十三章节重要的知识点. 一.引论1.项目的定义与举例:2.项目.项目组合.项目集与项目组织管理:3.范进本质是风资(范围.进度.成本.质量.风险.资源) ...
- Windows store app[Part 3]:认识WinRT的异步机制
WinRT异步机制的诞生背景 当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应.流畅的操作感变的十分重要. 在连接外部程序接口获取数据,操作本地数 ...
- iis 部署webapi常见错误及解决方案
iis 部署webapi常见错误及解决方案 错误一: 原因:asp.net web api部署在Windows服务器上后,按照WebAPI定义的路由访问,老是出现404,但定义一个静态文件从站点访问, ...
- ExtJS浏览器对象模型BOM——命名空间和用户代理对象、Cookie
BOM(浏览器对象模型(BrowserObjectModel)),允许访问和操控浏览器窗口.研发者通过使用BOM,可移动窗口.更改状态栏文本.执行其它不与页面内容发生直接联系的操作. 本文将从ExtJ ...